您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Java程序设计案例教程(第二版)周怡张英主编。第11章习题答案
习题11一.是非题1.InputStream类能够被实例化。(错)2.从键盘流向内存的数据流是输入流。(对)3.FileReader是用文件字节流的的读操作。(错)4.打开一个文件时不可能会产生IOException。(错)5.Java的标准输入对象是System.in。(对)二.选择题1.InputStream和OutputStream处理的数据是B。A.位B.字节C.字符D.任意类型2.以下哪一个类的对象可以是DataInputStream的构造函数的参数?CA.FileB.StringC.FileInputStreamD.FileOutputStream3.下列不是java的输入输出流的是CA.文本流B.字节流C.字符流D.文件流4.下列属于文件输入输出类的是(A)A.FileInputStream和FileOutputStreamB.BufferInputStream和BufferOutputStreamC.DataInputStream和DataOutputStreamD.以上都是5.下面对File类构造函数使用不正确的是?(D)A.Filefile1=newFile(c:\\病历目录);B.Filefile2=newFile(c:\\病历目录,myfile.txt);C.Filefile3=newFile(c:\\病历目录);Filefile4=newFile(file3,myfile.txt);D.Filefile5=newFile(病历目录.txt);Filefile6=newFile(file5,myfile.txt);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目录下建文件类对象,文件名为fileNametry{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”保存至磁盘,并从磁盘读出所存数据回显至屏幕。packagepackage11;importjava.io.*;publicclassNurseInfoSys{publicstaticvoidmain(String[]args){Stringstrdir,filename;strdir=c:\\护士档案目录;Filefiledir=newFile(strdir);//创建病历读写目录if(!filedir.exists())filedir.mkdir();Nursenurse1=newNurse(1000,张敏飞,32,'女',护士长,优秀一级);Nursenurse2=newNurse(1001,周捷雨,25,'女',护士,良好一级);BufferedReaderbin=newBufferedReader(newInputStreamReader(System.in));System.out.println(********护士档案信息系统***********);try{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+创建完毕!);System.out.println(\n读取护士档案文件);System.out.println(工号+\t+姓名+\t+年龄+\t+性别+\t+职称+\t+绩效);for(inti=0;i60;i++)System.out.print(-);//输出分隔符System.out.println();//创建文件输入流对象FileInputStreamfilein=newFileInputStream(file_create);//创建数据输入流对象DataInputStreamdinfile=newDataInputStream(filein);for(inti=1;i=2;i++){//读取档案文件longdno=dinfile.readLong();Stringdname=dinfile.readUTF();intage=dinfile.readInt();charsex=dinfile.readChar();Stringposition=dinfile.readUTF();Stringgrade=dinfile.readUTF();System.out.println(dno+\t+dname+\t+age+\t+sex+\t+position+\t+grade);}//for结束dinfile.close();//关闭数据输入流filein.close();//关闭文件输入流}catch(IOExceptione){System.out.println(e.toString());}}//main方法结束staticvoidwriteFile(DataOutputStreamdoutfile1,Nursenurse1)//写档案{try{doutfile1.writeLong(nurse1.nno);doutfile1.writeUTF(nurse1.nname);doutfile1.writeInt(nurse1.age);doutfile1.writeChar(nurse1.sex);doutfile1.writeUT
本文标题:Java程序设计案例教程(第二版)周怡张英主编。第11章习题答案
链接地址:https://www.777doc.com/doc-2878869 .html