Java程序设计实用教程_胡伏湘_清华大学出版社009习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Java程序设计精典教程》习题答案
编着:胡伏湘,雷军环
清华大学出版社
第9章习题解答
一、简答题
1.什么叫流?对流的分类通常有几种方式?
答:流是指一组有顺序的、有起点和终点的字节结合。
流的分类方式有多种:
根据数据流动的方向,可分为输入流和输出流。
输入流:只能从中读取数据,而不能向其写出数据
输出流:只能向其写出数据,而不能从中读取数据
根据处理数据的单位划分,可分为字符流和字节流
字节流:以字节为单位进行数据传输,每次传送一个或多个字节
字符流:以Unicode字符为单位进行数据传输,每次传送一个或多个字符根据数据流所关联的是数据源还是其他数据流,可分为节点流和处理流
节点流:直接从指定的位置(如磁盘文件或内存区域)读或写
处理流:对一个巳存在的流的连接和封装,通过对所封装的流的功能调用实现数据的读/写功能,处理流并不直接连接到数据流。
2.Java的所有I/O流都是四个抽象类的子类,这四个抽象类是什么?
答:
InputStream:是所有字节输入流的父类
OutputStream:是所有字节输出流的父类
Reader:是所有输入字符流的父类
Writer:是所有输出字符流的父类
3.写出下面这些输入输出流类的输入输出操作的特点。
(1)InputStream和OutputStream
(2)DataInputStream 和DataOutputStream
(3)FileInputStream和FileOutputStream
(4)PrintStream
(5)RandomAccessFile
答:
(1)一个字节一个字节地输入输出数据
(2)按照不同的数据类型输入输出数据
(3)一个字节一个字节地输入输出数据
(4)把数据转化成字符串输出
(5)能够随机访问普通文件
4.File类的作用是什么?
答:File类是I/O包中唯一能够代表磁盘文件本身的对象,使用File类,我们可以方便地建立与某磁盘文件的连接。一个对应着某磁盘文件或目录的File对象一经创建,我们就可以通过调用它的方法来获得该文件或目录的属性,File类中还定义了一些对文件或目录进行管理、操作的方法,利用这些方法可以完成对文件和目录的建立、删除、查询、重命名等操作。
5.Java语言是否可以读入和写出文本格式的文件?如果可以,使用的类是什么?
答:可以。
使用的类是FileReader和FileWriter
6.流文件读入和写出的操作过程有哪些?
答:流文件读入和写出的操作过程如下:
(1)利用文件名字符串或File对象创建输入输出流对象
以创建FileInputStream为例,它有两个常用的构造函数:
FileInputStream(String FileName):利用文件名(包括路径名)字符串创建从该文件读入数据的输入流
FileInputStream(File f):利用巳存在的File对象创建从该对象对应的磁盘文件中读入数据的输入流
注意:在创建文件输入或输出流时可能因给出的文件名不对,或路径不对,或文件的属性不对不能进行读写而造成错误,此时系统会抛出异常FileNotFoundException,所以创建文件输入输出流并调用构造函数的语句应该被包括在try块中,并有相应的catch块来处理它们可能产生的异常。
(2)从文件输入输出流中读写数据
从文件输入输出流中读写数据有两种方式:一是直接利用FileInputStream和FileOutputStream自身的读写功能;另一种是以FileInputStream和FileOutputStream为原始数据源,再套接上其他功能较强大的输入输出流完成文件的读写操作。
二、编程题
1.设计一个程序,可以接受用户从键盘输入的多个字符,换行表示字符输入结束。输入完后将其显示在屏幕上。
参考代码如下:
import .*;
public class XT009201 {
public static void main(String args[]) {
String s="";
"请输入一个字符串:");
try{
BufferedReader in=
new BufferedReader(new InputStreamReader);
s=();
}
catch(IOException e) {
}
"你输入的字符串是:" + s);
}
}
2.编写程序,实现当用户输入的文件名不存在时,可以重新输入,直到输入一个正确的文件名后,打开这个文件并将文件的内容输出到屏幕上的功能。
参考代码如下:
import .*;
public class XT009202 {
public static void main(String args[]) {
String str;
File sourceFile;
BufferedReader source;
while (true) {
try {
InputStreamReader din = new InputStreamReader;
BufferedReader in = new BufferedReader(din);
"请输入文件路径及文件名:");
sourceFile = new File());