还剩9页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
习题111.是非题1.InputStream类能够被实例化错2.从键盘流向内存的数据流是输入流对3.FileReader是用文件字节流的的读操作错4.打开一个文件时不可能会产生IOException错5.Java的标准输入对象是System.in对2.选择题1.InputStream和OutputStream处理的数据是BA.位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类构造函数使用不正确的是?DA.Filefile1=newFilec:\\病历目录;B.Filefile2=newFilec:\\病历目录myfile.txt;C.Filefile3=newFilec:\\病历目录;Filefile4=newFilefile3myfile.txt;D.Filefile5=newFile病历目录.txt;Filefile6=newFilefile5myfile.txt;6.要在磁盘上创建一个文件,可以使用哪些类的实例?DA.FileOutputStreamB.RandomAccessFileC.FileD.以上都可以3.填空题1.按照流的方向来分,I/O流分为输入流和输出流2.按照程序处理的内容来分,I/O流分为字符流和字节流3.Java的标准输出对象是System.out4.所有的输入输出类都包含在java.io包中,程序开头必须都要import该包5.将一个长整型的数据保存到文件应该使用writeLong方法6.Java中的字符输出流都是抽象类Writer的子类4.简答题
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=newBufferedReadernewInputStreamReaderSystem.in;即通过标准输入System.in构造了一个BufferedReader对象,而BufferedReader具有良好的读文本数据的方法
3.使用DataInputStream和DataOutputStream的主要目的是什么?答Java的基本数据类型中就有占几个字节的数据,如int型、float型、double型等等,需要一次读写几个字节,因此需要专门的数据输入输出流来处理DataInputStream和DataOutputStream分别实现了java.io包中的DataInput和DataOutput接口,能够读写Java基本数据类型的数据和Unicode编码格式的字符串这样,在输入输出数据时就不必关心该数据究竟包含几个字节了5.编程题1.编程实现键盘输入病人CT检查结果,保存至磁盘,并回显至屏幕packagepackage11;publicclassByteFileWrite{publicstaticvoidmainStringargs[]{FilefilePath=newFiled:\\CTDiagnose\\;//创建目录请注意是双反斜杠\\if!filePath.exists//若目录不存在则建之filePath.mkdir;StringfileName=newStringCTDiagnose
1.txt;FilebyteFile=newFilefilePathfileName;//在filePath目录下建文件类对象文件名为fileNametry{intcount;byteinbytes[]=newbyte
[1024];FileOutputStreambyteFileStream=newFileOutputStreambyteFile;//创建字节文件输出流对象byteFileStream.writeinbytes0count;//写入输出流byteFileStream.close;//关闭输出流}catchIOExceptionioe{}catchExceptione{}//try-catch结束}//main方法结束}程序运行结果如下输入CT检查结果:CT检查结果无异常!CT检查结果已保存到d:\CTDiagnose\CTDiagnose
1.txt中,请查看!程序运行结束后,到d:盘CTDiagnose文件夹下查看CTDiagnose
1.txt文件,发现文件中数据为“CT检查结果无异常!”2.使用DataInputStream和DataOutputStream编程实现护士档案信息管理,通过键盘输入护士姓名、工号、性别、年龄、职称、所属科室、绩效考核信息,以文件名“护士档案.txt”保存至磁盘,并从磁盘读出所存数据回显至屏幕packagepackage11;publicclassNurseInfoSys{publicstaticvoidmainString[]args{Stringstrdirfilename;strdir=c:\\护士档案目录;Filefiledir=newFilestrdir;//创建病历读写目录if!filedir.existsfiledir.mkdir;Nursenurse1=newNurse1000张敏飞32女护士长优秀一级;Nursenurse2=newNurse1001周捷雨25女护士良好一级;BufferedReaderbin=newBufferedReadernewInputStreamReaderSystem.in;System.out.println********护士档案信息系统***********;try{System.out.print请输入护士档案文件名按回车结束:;filename=bin.readLine;bin.close;//创建护士信息文件Filefile_create=newFilefiledirfilename;if!file_create.existsfile_create.createNewFile;//创建文件输出流对象FileOutputStreamfileout=newFileOutputStreamfile_create;//创建数据输出流对象DataOutputStreamdoutfile=newDataOutputStreamfileout;//写档案writeFiledoutfilenurse1;writeFiledoutfilenurse2;doutfile.close;//关闭数据输出流fileout.close;//关闭文件输出流System.out.println档案:+file_create+创建完毕!;System.out.println\n读取护士档案文件;System.out.println工号+\t+姓名+\t+年龄+\t+性别+\t+职称+\t+绩效;forinti=0;i60;i++System.out.print-;//输出分隔符System.out.println;//创建文件输入流对象FileInputStreamfilein=newFileInputStreamfile_create;//创建数据输入流对象DataInputStreamdinfile=newDataInputStreamfilein;forinti=1;i=2;i++{//读取档案文件longdno=dinfile.readLong;Stringdname=dinfile.readUTF;intage=dinfile.readInt;charsex=dinfile.readChar;Stringposition=dinfile.readUTF;Stringgrade=dinfile.readUTF;System.out.printlndno+\t+dname+\t+age+\t+sex+\t+position+\t+grade;}//for结束dinfile.close;//关闭数据输入流filein.close;//关闭文件输入流}catchIOExceptione{System.out.printlne.toString;}}//main方法结束staticvoidwriteFileDataOutputStreamdoutfile1Nursenurse1//写档案{try{doutfile
1.writeLongnurse
1.nno;doutfile
1.writeUTFnurse
1.nname;doutfile
1.writeIntnurse
1.age;doutfile
1.writeCharnurse
1.sex;doutfile
1.writeUTFnurse
1.position;doutfile
1.writeUTFnurse
1.grade;}catchIOExceptione{System.out.printlne.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=未知;}//publicNursepublicNurseintnnoStringnnameintagecharsexStringpositionStringgrade{ifnno0this.nno=nno;this.nname=nname;this.age=age;this.sex=sex;this.position=position;this.grade=grade;}//publicNurseintnnoStringnnameintagecharsex…}//classNurse
3.编写一个程序,从键盘输入一串字符,统计这串字符中英文字母、数字、其他符号的字符数,将其结果保存到磁盘中,文件名自定package11;importpublicclassCountString{privatestaticintnumOfDigit;privatestaticintnumOfEnglishChar;privatestaticintnumOfOther;publicstaticvoidmainString[]args{numOfDigit=0;numOfEnglishChar=0;numOfOther=0;InputStreamReaderisr=newInputStreamReaderSystem.in;BufferedReaderbr=newBufferedReaderisr;Strings=null;System.out.println请输入一行字符串;try{//在键盘上读一行s=br.readLine;forinti=0;i=s.length-1;i++{charc=s.charAti;ifc=0c=9{numOfDigit++;}elseifc=ac=z||c=Ac=Z{numOfEnglishChar++;}elsenumOfOther++;}System.out.println;br.close;System.out.println数字个数为+numOfDigit;System.out.println英文字符个数为+numOfEnglishChar;System.out.println英文字符个数为+numOfOther;Stringstrdirfilename=count.txt;strdir=c:\\第11章目录;Filefiledir=newFilestrdir;//创建文件目录if!filedir.existsfiledir.mkdir;//创建信息文件Filefile_create=newFilefiledirfilename;if!file_create.existsfile_create.createNewFile;//创建文件输出流对象FileOutputStreamfileout=newFileOutputStreamfile_create;//创建数据输出流对象DataOutputStreamdoutfile=newDataOutputStreamfileout;doutfile.writeUTF输入的字符串为+s;doutfile.writeUTF\r\n;doutfile.writeUTF英文字符个数为+numOfDigit+\n;doutfile.writeUTF数字字符个数为+numOfEnglishChar+\n;doutfile.writeUTF其他字符个数为+numOfOther+\n;doutfile.close;}catchIOExceptione{e.printStackTrace;}}//main方法结束}
4.编写一个程序,读取某个文件(该文件中存取了一些字符),统计这串字符中英文字母、数字、其他符号的字符数,将其结果保存到磁盘中,文件名自定package11;importpublicclassCountStringOfFile{privatestaticintnumOfDigit;privatestaticintnumOfEnglishChar;privatestaticintnumOfOther;publicstaticvoidmainString[]args{numOfDigit=0;numOfEnglishChar=0;numOfOther=0;InputStreamReaderisr=newInputStreamReaderSystem.in;BufferedReaderbr=newBufferedReaderisr;Strings=null;System.out.println读取文件;Filefile_input1=newFileC:\\in.txt;intn;InputStreamReaderfileinput;try{fileinput=newInputStreamReadernewFileInputStreamfile_input1;try{whilen=fileinput.read!=-1s=s+charn;fileinput.close;}catchIOExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}}catchFileNotFoundExceptione1{//TODOAuto-generatedcatchblocke
1.printStackTrace;}///////////////////////////////try{forinti=0;i=s.length-1;i++{charc=s.charAti;ifc=0c=9{numOfDigit++;}elseifc=ac=z||c=Ac=Z{numOfEnglishChar++;}elsenumOfOther++;}System.out.println;br.close;System.out.println数字个数为+numOfDigit;System.out.println英文字符个数为+numOfEnglishChar;System.out.println英文字符个数为+numOfOther;Stringstrdirfilename=countOfFile.txt;strdir=c:\\第11章目录;Filefiledir=newFilestrdir;//创建文件目录if!filedir.existsfiledir.mkdir;//创建信息文件Filefile_create=newFilefiledirfilename;if!file_create.existsfile_create.createNewFile;//创建文件输出流对象FileOutputStreamfileout=newFileOutputStreamfile_create;//创建数据输出流对象DataOutputStreamdoutfile=newDataOutputStreamfileout;doutfile.writeUTF输入的字符串为+s;doutfile.writeUTF\r\n;doutfile.writeUTF英文字符个数为+numOfDigit+\n;doutfile.writeUTF数字字符个数为+numOfEnglishChar+\n;doutfile.writeUTF其他字符个数为+numOfOther+\n;doutfile.close;}catchIOExceptione{e.printStackTrace;}}//main方法结束}
5.编写一个程序,在当前目录下创建一个子目录test,在这个新创建的子目录下创建一个文件testReadFile,并把这个文件设置成只读package11;importpublicclassCreateDiretory{publicstaticvoidmainString[]args{Stringstrdir=test;Filefiledir=newFilestrdir;if!filedir.exists{//如果不存在此目录,则创建文件目录filedir.mkdir;System.out.println创建目录!;}Filefile_create=newFilefiledirtestReadFile.txt;if!file_create.exists{try{file_create.createNewFile;//创建文件file_create.setReadOnly;//设置为只读文件System.out.println创建文件,并设置成只读;}catchIOExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}}else{System.out.println已存在文件!;}}//main方法结束}。