Java程序设计案例教程(第二版)周怡、张英主编第11章习题答案

上传人:ch****o 文档编号:158136186 上传时间:2022-10-03 格式:DOC 页数:11 大小:57.51KB
返回 下载 相关 举报
Java程序设计案例教程(第二版)周怡、张英主编第11章习题答案_第1页
第1页 / 共11页
Java程序设计案例教程(第二版)周怡、张英主编第11章习题答案_第2页
第2页 / 共11页
Java程序设计案例教程(第二版)周怡、张英主编第11章习题答案_第3页
第3页 / 共11页
点击查看更多>>
资源描述
习题11 一 是非题1 InputStream类能够被实例化。( 错 )2 从键盘流向内存的数据流是输入流。( 对 )3 FileReader是用文件字节流的的读操作。( 错 )4 打开一个文件时不可能会产生IOException。( 错 )5 Java的标准输入对象是System.in。( 对 )二 选择题1InputStream和OutputStream处理的数据是 B 。A. 位 B. 字节 C. 字符D. 任意类型2以下哪一个类的对象可以是DataInputStream的构造函数的参数? C A. File B. String C. FileInputStream D. FileOutputStream3下列不是java的输入输出流的是 C A. 文本流 B. 字节流 C. 字符流 D. 文件流4下列属于文件输入输出类的是( A )A. FileInputStream和FileOutputStreamB. BufferInputStream和BufferOutputStreamC. DataInputStream和DataOutputStreamD. 以上都是5下面对File类构造函数使用不正确的是?( D )A. File file1=new File(c: 病历目录);B. File file2=new File(c:病历目录,myfile.txt); C. File file3=new File(c:病历目录); File file4=new File(file3, myfile.txt); D. File file5=new File(病历目录.txt); File file6=new File(file5, myfile.txt);6要在磁盘上创建一个文件,可以使用哪些类的实例?( D )A. FileOutputStream B. RandomAccessFile C.File D.以上都可以三 填空题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 读取字节并将其解码为字符,将字节流和字符流进行转换。 例如: BufferedReader myReaderin = new BufferedReader(new InputStreamReader(System.in); 即通过标准输入System.in构造了一个BufferedReader对象,而BufferedReader具有良好的读文本数据的方法。3. 使用DataInputStream和DataOutputStream的主要目的是什么?答:Java的基本数据类型中就有占几个字节的数据,如int型、float型、double型等等,需要一次读写几个字节,因此需要专门的数据输入输出流来处理。DataInputStream和DataOutputStream分别实现了java.io包中的DataInput和DataOutput接口,能够读写Java基本数据类型的数据和Unicode编码格式的字符串。这样,在输入输出数据时就不必关心该数据究竟包含几个字节了。五 编程题1编程实现键盘输入病人CT检查结果,保存至磁盘,并回显至屏幕。package package11;import java.io.*;public class ByteFileWrite public static void main(String args) File filePath=new File(d:CTDiagnose); /创建目录,请注意是双反斜杠 if(!filePath.exists() /若目录不存在,则建之 filePath.mkdir(); String fileName=new String(CTDiagnose1.txt); File byteFile=new File(filePath,fileName); /在filePath目录下建文件类对象,文件名为fileName try System.out.print(输入CT检查结果: ); int count; byte inbytes = new byte1024; count = System.in.read(inbytes); /读取标准输入流 FileOutputStream byteFileStream = new FileOutputStream(byteFile); /创建字节文件输出流对象 byteFileStream.write(inbytes,0,count); /写入输出流 byteFileStream.close(); /关闭输出流 System.out.println(CT检查结果已保存到+filePath+fileName+中,请查看!); catch (IOException ioe) System.out.println(ioe); catch (Exception e) System.out.println(e); /try-catch结束 /main方法结束 程序运行结果如下: 输入CT检查结果: CT检查结果无异常!CT检查结果已保存到d: CTDiagnose CTDiagnose1.txt中,请查看! 程序运行结束后,到d:盘CTDiagnose文件夹下查看CTDiagnose1.txt文件,发现文件中数据为“CT检查结果无异常!”。2使用DataInputStream和DataOutputStream编程实现护士档案信息管理,通过键盘输入护士姓名、工号、性别、年龄、职称、所属科室、绩效考核信息,以文件名“护士档案.txt”保存至磁盘,并从磁盘读出所存数据回显至屏幕。package package11;import java.io.*;public class NurseInfoSys public static void main(String args)String strdir,filename;strdir=c:护士档案目录; File filedir=new File(strdir);/创建病历读写目录 if(!filedir.exists() filedir.mkdir(); Nurse nurse1=new Nurse(1000,张敏飞,32,女,护士长,优秀一级); Nurse nurse2=new Nurse(1001,周捷雨,25,女,护士,良好一级); BufferedReader bin=new BufferedReader(new InputStreamReader(System.in); System.out.println(*护士档案信息系统*); try System.out.print(请输入护士档案文件名(按回车结束):); filename=bin.readLine(); bin.close(); /创建护士信息文件 File file_create=new File(filedir,filename); if(!file_create.exists() file_create.createNewFile(); /创建文件输出流对象 FileOutputStream fileout=new FileOutputStream(file_create); /创建数据输出流对象 DataOutputStream doutfile=new DataOutputStream(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(int i=0;i60;i+) System.out.print(-);/输出分隔符 System.out.println(); /创建文件输入流对象 FileInputStream filein=new FileInputStream(file_create);/创建数据输入流对象 DataInputStream dinfile=new DataInputStream(filein); for(int i=1;i0) this.nno=nno;this.nname=nname;this.age=age;this.sex=sex;this.position=position;this.grade=grade;/ public Nurse(int nno,String nname,int age,char sex,)/ class Nurse3.编写一个程序,从键盘输入一串字符,统计这串字符中英文字母、数字、其他符号的字符数,将其结果保存到磁盘中,文件名自定。package 11;import java.io.*;public class CountString private static int numOfDigit;private static int numOfEnglishChar;private static int numOfOther;public static void main(String args)numOfDigit=0;numOfEnglishChar=0;numOfOther=0;InputStreamReader isr = new InputStreamReader(System.in);BufferedReader br = new BufferedReader(isr); String s = null;System.out.println(请输入一行字符串:);try / 在键盘上读一行 s = br.readLine(); for(int i=0;i=0&c=a & c=A & c=Z)numOfEnglishChar+;elsenumOfOther+;System.out.println(); br.close(); System.out.println(数字个数为: + numOfDigit);System.out.println(英文字符个数为: + numOfEnglishChar);System.out.println(英文字符个数为: + numOfOther);String strdir,filename = count.txt;strdir=c:第11章目录; File filedir=new File(strdir);/创建文件目录 if(!filedir.exists() filedir.mkdir(); /创建信息文件 File file_create=new File(filedir,filename); if(!file_create.exists() file_create.createNewFile();/创建文件输出流对象 FileOutputStream fileout=new FileOutputStream(file_create);/创建数据输出流对象 DataOutputStream doutfile=new DataOutputStream(fileout); doutfile.writeUTF(输入的字符串为:+ s ); doutfile.writeUTF(rn); doutfile.writeUTF(英文字符个数为:+ numOfDigit +n); doutfile.writeUTF(数字字符个数为:+ numOfEnglishChar +n); doutfile.writeUTF(其他字符个数为:+ numOfOther +n); doutfile.close(); catch (IOException e) e.printStackTrace(); /main方法结束4.编写一个程序,读取某个文件(该文件中存取了一些字符),统计这串字符中英文字母、数字、其他符号的字符数,将其结果保存到磁盘中,文件名自定。package 11;import java.io.*;public class CountStringOfFile private static int numOfDigit;private static int numOfEnglishChar;private static int numOfOther;public static void main(String args)numOfDigit=0;numOfEnglishChar=0;numOfOther=0;InputStreamReader isr = new InputStreamReader(System.in);BufferedReader br = new BufferedReader(isr); String s = null;System.out.println(读取文件:);File file_input1=new File(C:in.txt);int n; InputStreamReader fileinput;try fileinput = new InputStreamReader(new FileInputStream(file_input1);try while(n=fileinput.read()!=-1) s=s+(char)n;fileinput.close(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (FileNotFoundException e1) / TODO Auto-generated catch blocke1.printStackTrace(); /try for(int i=0;i=0&c=a & c=A & c=Z)numOfEnglishChar+;elsenumOfOther+;System.out.println(); br.close(); System.out.println(数字个数为: + numOfDigit);System.out.println(英文字符个数为: + numOfEnglishChar);System.out.println(英文字符个数为: + numOfOther);String strdir,filename = countOfFile.txt;strdir=c:第11章目录; File filedir=new File(strdir);/创建文件目录 if(!filedir.exists() filedir.mkdir(); /创建信息文件 File file_create=new File(filedir,filename); if(!file_create.exists() file_create.createNewFile();/创建文件输出流对象 FileOutputStream fileout=new FileOutputStream(file_create);/创建数据输出流对象 DataOutputStream doutfile=new DataOutputStream(fileout); doutfile.writeUTF(输入的字符串为:+ s ); doutfile.writeUTF(rn); doutfile.writeUTF(英文字符个数为:+ numOfDigit +n); doutfile.writeUTF(数字字符个数为:+ numOfEnglishChar +n); doutfile.writeUTF(其他字符个数为:+ numOfOther +n); doutfile.close(); catch (IOException e) e.printStackTrace(); /main方法结束5.编写一个程序,在当前目录下创建一个子目录test,在这个新创建的子目录下创建一个文件testReadFile,并把这个文件设置成只读。package 11;import java.io.*;public class CreateDiretory public static void main(String args)String strdir=test; File filedir=new File(strdir); if(!filedir.exists() /如果不存在此目录,则创建文件目录 filedir.mkdir();System.out.println(创建目录!); File file_create=new File(filedir,testReadFile.txt); if(!file_create.exists()try file_create.createNewFile();/创建文件file_create.setReadOnly();/设置为只读文件System.out.println(创建文件,并设置成只读。); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace(); else System.out.println(已存在文件!); /main方法结束
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!