知ing

Java程序设计实用教程(第三版)

叶核亚 编 / 电子工业出版社

? ? ? 上传

查看本书

第9章输入/输出流与文件操作

9.1什么是流?流有什么用?面向对象语言为什么需要流?哪些场合需要流?答:流是指一组有顺序、有起点和终点的字节集合,是对数据传输的总称或抽象(也就是数据在两个对象之间的传输称为流)。

流的作用就是使数据传输操作独立于相关设备。在面向对象的程序设计中,数据的传输和流动具有广泛性,可以在内存与外部设备之间传输,还可以从内存到内存,甚至可以从一台计算机通过网络流向另一台计算机等,故面向对象语言采用流机制。

在标准输入/输出、在文件的读/写等操作中都需要流。


9.2Java提供了哪些流类?各种流类之间的关系是怎样的?什么场合需要使用什么流类?

答:Java中按照流的方向性,流分为输入流和输出流两大类。按照流中元素的基本类型,流分为字节流和字符流两大类。字节流类按照流的方向分为字节输入流类和字节输出流类,字符流类方向性分为字符输入流类和字符输出流类。以及文件操作类File,随机存取文件类RandomAccessFile.

其中InputStream类是所有字节输入流的根类,OutputStream类是所有字节输出流的根类;Reader类是所有字符输入流的根类,Writer类是所有字符输出流的根类。


9.3操作系统中文件和目录概念是怎么样的?Java提供了哪些对文件和目录操作的类?程序中对文件和目录能够进行哪些操作?如何操作?

答:文件是信息的一种组织形式,是存储在外部存储介质上的具有标识名的一组相关的信息集合。目录是文件系统组织和管理文件的基本单位,保存它所管理的每个文件的基本属性信息(称为文件目录项或文件控制块)。

Java直接对文件的顺序存取和随机存取操作,提供了File类记载文件属性信息,对文件读/写操作时以流的形式。RandomAccessFile类以随机存取方式进行文件读/写操作。但在对文件操作过程中还需要使用文件过滤器接口和文件对话框类。在操作系统中,目录也是以文件的形式保存的,称为目录文件。故一个File对象也可以表示一个目录。

可以对文件进行读、写、删除、创建等操作,对目录可以读取、创建、删除等操作。应用程序通过调用操作系统提供的系统调用能够对文件及目录进行各种操作。

再打开、保存、复制文件时,需要读/写文件中的数据内容,这些操作由流实现,不同类型的文件需要使用不同的流泪。


9.4流与文件操作有什么关系?实际应用中将流类与文件操作结合起来能够实现哪些复杂问题?如何实现?

答:对文件的操作时通过流这个工具进行的。再打开、保存、复制文件时,需要读/写文件中的数据内容,这些操作由流实现,不同类型的文件需要使用不同的流泪。


9.5什么是输入/输出?什么是标准输入/输出?Java怎样实现标准输入/输出功能?

答:数据由外部设备流向内存,这个过程称为输入;数据有内存流向外部设备,这个过程称为输出。

在计算机系统中,标准输入是从键盘等外部输入设备中获得数据,标准输出是向显示器或打印机等外部输出设备发送数据。

Java在java.lang.System类中声明了3个常量in、out和err用于实现标准输入/输出

功能。


9.6除了标准输入/输出及文件操作之外,还有那些应用中需要使用流?

答:在面向对象的程序设计中,数据的传输和流动具有广泛性,不仅可以在内存与外部设备之间传输,还可以从内存流向内存,甚至可以从一台计算机通过网络流向另一台计算机,因此各种不同的数据源的传输都需要采取不同的流机制来实现。


9.7在“打开”、“保存”文件对话框中,设置“*.txt”等文件过滤器。答:略


9.8RandomAccessFile类和与File类有什么不同,进行读写操作时需要使用流吗?

答:File类保存文件和目录的各种属性,在对文件的操作中,其中读/写文件的操作由字节流或字符流实现,通常是以顺序存取方式,如果要对文件进行随机存取即对一个文件同时进行读和写操作时就是用RandomAccessFile类。它们在读写操作时都要用到流。


9.9能否将一个对象写入一个随机存取文件?答:不能


9.10Applet应用程序能否使用流与文件操作?为什么不能?答:不能。


9.11当创建文件流类或File类对象时,如果文件名为空,会怎样?会抛出异常吗?

答:NullPointerException


查看更多