Java程序设计案例教程第二版周怡张英主编第11章习题答案Word格式.docx

上传人:b****5 文档编号:19713041 上传时间:2023-01-09 格式:DOCX 页数:13 大小:20.38KB
下载 相关 举报
Java程序设计案例教程第二版周怡张英主编第11章习题答案Word格式.docx_第1页
第1页 / 共13页
Java程序设计案例教程第二版周怡张英主编第11章习题答案Word格式.docx_第2页
第2页 / 共13页
Java程序设计案例教程第二版周怡张英主编第11章习题答案Word格式.docx_第3页
第3页 / 共13页
Java程序设计案例教程第二版周怡张英主编第11章习题答案Word格式.docx_第4页
第4页 / 共13页
Java程序设计案例教程第二版周怡张英主编第11章习题答案Word格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Java程序设计案例教程第二版周怡张英主编第11章习题答案Word格式.docx

《Java程序设计案例教程第二版周怡张英主编第11章习题答案Word格式.docx》由会员分享,可在线阅读,更多相关《Java程序设计案例教程第二版周怡张英主编第11章习题答案Word格式.docx(13页珍藏版)》请在冰豆网上搜索。

Java程序设计案例教程第二版周怡张英主编第11章习题答案Word格式.docx

D.Filefile5=newFile("

病历目录.txt"

Filefile6=newFile(file5,"

6.要在磁盘上创建一个文件,可以使用哪些类的实例?

(D)

A.FileOutputStreamB.RandomAccessFileC.FileD.以上都可以

三.填空题

1.按照流的方向来分,I/O流分为输入流和输出流。

2.按照程序处理的内容来分,I/O流分为字符流和字节流。

3.Java的标准输出对象是System.out。

4.所有的输入输出类都包含在java.io包中,程序开头必须都要import该包。

5.将一个长整型的数据保存到文件应该使用writeLong方法。

6.Java中的字符输出流都是抽象类Writer的子类。

四.简答题

1.解释字节流和字符流、文件输入流和文件输出流的含义及区别?

答:

字节流是以byte为基本处理单位的流;

而字符流是以16位的Unicode码为处理单位的流。

基本输入流InputStream)和基本输出流(OutputStream)是处理以字节(8个二进制位)

为单位的字节流类。

字符流Reader和Writer类是专门处理16位Unicode字符组成的文本流类,读写以字符(Unicode)为单位进行。

在java.io包中定义的大多数类是实行流式操作的,但文件操作类不是,它独立于InputStream类和OutpuStream等类。

要完成对文件内容的读取和写入,需要使用java.io

包中的FileInputStream/FileOutputStream字节输入输出流类或FileReader/FileWriter字符输入输出流类。

FileInputStream/FileOutputStream这两个类作为InputStream类和

OutputStream类的子类,重写了其父类的大部分方法,专门用来进行文件的I/O处理。

但由于FileInputStream和FileOutputStream直接从InputStream和OutputStream继承而来,并没有对其功能扩充,因此所有的读写操作只能以字节为单位对二进制数据进行处理,FileReader/FileWriter类则被设计用于读取文件和向文件写入字符数据。

2.InputStreamReader和OutputStreamWriter的主要作用是什么?

由于我们现在的操作系统平台,输入输出主要还是读写非Unicode编码的文件,所以在实际编程中,一般都是借用一对桥梁类InputStreamReader/OutputStreamWriter,它们分别用来连接字节流InputStream和OutputStream对象,它们使用指定的charset读取字节并将其解码为字符,将字节流和字符流进行转换。

例如:

BufferedReadermyReaderin=newBufferedReader(newInputStreamReader(System.in));

即通过标准输入System.in构造了一个BufferedReader对象,而BufferedReader具有良好的读文本数据的方法。

3.使用DataInputStream和DataOutputStream的主要目的是什么?

Java的基本数据类型中就有占几个字节的数据,如int型、float型、double型等等,需要一次读写几个字节,因此需要专门的数据输入输出流来处理。

DataInputStream和DataOutputStream分别实现了java.io包中的DataInput和DataOutput接口,能够读写Java基本数据类型的数据和Unicode编码格式的字符串。

这样,在输入输出数据时就不必关心该

数据究竟包含几个字节了。

 

五.编程题

1.编程实现键盘输入病人CT检查结果,保存至磁盘,并回显至屏幕。

packagepackage11;

importjava.io.*;

publicclassByteFileWrite

{

publicstaticvoidmain(Stringargs[])

FilefilePath=newFile("

d:

\\CTDiagnose\\"

//创建目录,请注意是双反斜杠\\

if(!

filePath.exists())//若目录不存在,则建之

filePath.mkdir();

StringfileName=newString("

CTDiagnose1.txt"

FilebyteFile=newFile(filePath,fileName);

//在filePath目录下建文件类对象,文件名为fileName

try{

System.out.print("

输入CT检查结果:

"

intcount;

byteinbytes[]=newbyte[1024];

count=System.in.read(inbytes);

//读取标准输入流

FileOutputStreambyteFileStream=newFileOutputStream(byteFile);

//创建字节文件输出流对象

byteFileStream.write(inbytes,0,count);

//写入输出流

byteFileStream.close();

//关闭输出流

System.out.println("

CT检查结果已保存到"

+filePath+"

\\"

+fileName+"

中,请查看!

"

}

catch(IOExceptionioe)

{

System.out.println(ioe);

catch(Exceptione)

System.out.println(e);

}//try-catch结束

}//main方法结束

}

程序运行结果如下:

输入CT检查结果:

CT检查结果无异常!

CT检查结果已保存到d:

\CTDiagnose\CTDiagnose1.txt中,请查看!

程序运行结束后,到d:

盘CTDiagnose文件夹下查看CTDiagnose1.txt文件,发现文件中数据为“CT检查结果无异常!

”。

2.使用DataInputStream和DataOutputStream编程实现护士档案信息管理,通过键盘输入护士姓名、工号、性别、年龄、职称、所属科室、绩效考核信息,以文件名“护士档案.txt”保存至磁盘,并从磁盘读出所存数据回显至屏幕。

publicclassNurseInfoSys{

publicstaticvoidmain(String[]args){

Stringstrdir,filename;

strdir="

\\护士档案目录"

;

Filefiledir=newFile(strdir);

//创建病历读写目录

filedir.exists())filedir.mkdir();

Nursenurse1=newNurse(1000,"

张敏飞"

32,'

女'

护士长"

优秀一级"

Nursenurse2=newNurse(1001,"

周捷雨"

25,'

护士"

良好一级"

BufferedReaderbin=newBufferedReader(newInputStreamReader(System.in));

********护士档案信息系统***********"

System.out.print("

请输入护士档案文件名(按回车结束):

filename=bin.readLine();

bin.close();

//创建护士信息文件

Filefile_create=newFile(filedir,filename);

if(!

file_create.exists())file_create.createNewFile();

//创建文件输出流对象

FileOutputStreamfileout=newFileOutputStream(file_create);

//创建数据输出流对象

DataOutputStreamdoutfile=newDataOutputStream(fileout);

//写档案

writeFile(doutfile,nurse1);

writeFile(doutfile,nurse2);

doutfile.close();

//关闭数据输出流

fileout.close();

//关闭文件输出流

System.out.println("

档案:

+file_create+"

创建完毕!

\n>

>

读取护士档案文件<

<

工号"

+"

\t"

姓名"

年龄"

性别"

+"

职称"

绩效"

for(inti=0;

i<

60;

i++)

-"

//输出分隔符

System.out.println();

//创建文件输入流对象

FileInputStreamfilein=newFileInputStream(file_create);

//创建数据输入流对象

DataInputStreamdinfile=newDataInputStream(filein);

for(inti=1;

=2;

i++){

//读取档案文件

longdno=dinfile.readLong();

Stringdname=dinfile.readUTF();

intage=dinfile.readInt();

charsex=dinfile.readChar();

Stringposition=dinfile.readUTF();

Stringgrade=dinfile.readUTF();

System.out.println(dno+"

+dname+"

+age+"

+sex+"

+position+"

+grade);

}//for结束

dinfile.close();

//关闭数据输入流

filein.close();

//关闭文件输入流

catch(IOExceptione){

System.out.println(e.toString());

staticvoidwriteFile(DataOutputStreamdoutfile1,Nursenurse1)

//写档案

try{

doutfile1.writeLong(nurse1.nno);

doutfile1.writeUTF(nurse1.nname);

doutfile1.writeInt(nurse1.age);

doutfile1.writeChar(nurse1.sex);

doutfile1.writeUTF(nurse1.position);

doutfile1.writeUTF(nurse1.grade);

}

catch(IOExceptione){

System.out.println(e.toString());

}//writeFile结束

}//classNurseInfosys结束

classNurse{

intnno;

Stringnname;

intage;

charsex;

Stringposition;

Stringgrade;

publicNurse(){

this.nno=0;

this.nname="

未知"

this.age=0;

this.sex='

无'

this.position="

this.grade="

}//publicNurse()

publicNurse(intnno,Stringnname,intage,charsex,Stringposition,Stringgrade){

if(nno>

0)this.nno=nno;

this.nname=nname;

this.age=age;

this.sex=sex;

this.position=position;

this.grade=grade;

}//publicNurse(intnno,Stringnname,intage,charsex,…)

}//classNurse

3.编写一个程序,从键盘输入一串字符,统计这串字符中英文字母、数字、其他符号的字符数,将其结果保存到磁盘中,文件名自定。

package11;

publicclassCountString{

privatestaticintnumOfDigit;

privatestaticintnumOfEnglishChar;

privatestaticintnumOfOther;

publicstaticvoidmain(String[]args){

numOfDigit=0;

numOfEnglishChar=0;

numOfOther=0;

InputStreamReaderisr=newInputStreamReader(System.in);

BufferedReaderbr=newBufferedReader(isr);

Strings=null;

请输入一行字符串:

try{

//在键盘上读一行

s=br.readLine();

for(inti=0;

=s.length()-1;

charc=s.charAt(i);

if(c>

='

0'

&

c<

9'

){

numOfDigit++;

}

elseif((c>

a'

&

c<

z'

)||(c>

A'

Z'

)){

numOfEnglishChar++;

else

numOfOther++;

}

System.out.println();

br.close();

System.out.println("

数字个数为:

+numOfDigit);

英文字符个数为:

+numOfEnglishChar);

+numOfOther);

Stringstrdir,filename="

count.txt"

strdir="

\\第11章目录"

//创建文件目录

filedir.exists())

filedir.mkdir();

//创建信息文件

//创建文件输出流对象

//创建数据输出流对象

doutfile.writeUTF("

输入的字符串为:

+s);

\r\n"

+numOfDigit+"

\n"

数字字符个数为:

+numOfEnglishChar+"

其他字符个数为:

+numOfOther+"

}

catch(IOExceptione){

e.printStackTrace();

}

}

4.编写一个程序,读取某个文件(该文件中存取了一些字符),统计这串字符中英文字母、数字、其他符号的字符数,将其结果保存到磁盘中,文件名自定。

publicclassCountStringOfFile{

读取文件:

Filefile_input1=newFile("

C:

\\in.txt"

intn;

InputStreamReaderfileinput;

try{

fileinput=newInputStreamReader(newFileInputStream(file_input1));

try{

while((n=fileinput.read())!

=-1)

s=s+(char)n;

fileinput.close();

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

}

}catch(FileNotFoundExceptione1){

//TODOAuto-generatedcatchblock

e1.printStackTrace();

///////////////////////////////

try{

countOfFile.txt"

filedir

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1