资源预览内容
第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
第9页 / 共11页
第10页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
习题 11 一 是非题1InputStream 类能够被实例化。( 错 )2从键盘流向内存的数据流是输入流。( 对 )3FileReader 是用文件字节流的的读操作。 ( 错 )4打开一个文件时不可能会产生 IOException。( 错 )5Java 的标准输入对象是 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 流分为字符流和字节流。3Java 的标准输出对象是 System.out。4所有的输入输出类都包含在 java.io 包中,程序开头必须都要 import 该包。5将一个长整型的数据保存到文件应该使用 writeLong 方法。6Java 中的字符输出流都是抽象类 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 trySystem.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(*护士档案信息系 统*); trySystem.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读取护 士档案文件0) 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;pu
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号