Appearance
在Java中,使用字节流和字符流的步骤基本相同。
对于输入流,第一步是创建一个与数据源相关联的对象。例如,如果数据源是硬盘上的文件,可以将一个FileInputStream对象与之关联起来。
有了流对象后,可以使用该对象的方法来从流中读取信息。FileInputStream有一个read()方法,它从文件中读取字节。
从流中读取守信息后,调用方法close()来指出已完成对流的使用。
对于输出流,首先要创建一个与数据目的地相关联的对象。这样的对象是从类BufferedWriter派生而来的,后者是一种创建文件文件的有效方式。
要将信息发送给输出流的目的地,最简单的方式是使用方法write()。例如,BufferWriter的write()方法将单个字符发送给输出流。
和输入流一样,没有其他信息需要发送时,应调用输出流的close()方法。
**过滤流**
很多类,如果在读写数据之前将过滤器与流关联起来,都将获得更精致的结果。
过滤器是一种流,它修改了现有流的处理方式。
对流使用过滤器的步骤如下所述。
1。创建一个与数据源或数据目的地相关联的流。
2。将一个过滤器与流关联起来。
3。通过过滤器(而不是流)来读写数据。
对于过滤器,可调用的方法与流相同:有read()和write()方法,就像没有被过滤的流一样。
甚至可以将过滤器与另一个过滤器关联起来,从而实现这样的信息路径:输入流与文本文件丰关联,它被一个西班牙到英语的翻译过滤器过滤,而后者被一个脏字过滤器过滤,信息最后被发送到目的地——要阅读它的人。
**处理异常**
java.io包中有一些异常,这些异常在您使用文件和流时可能发生,其中两个最觉的是FileNotFoundException和EOFException。
当试图使用一个不存在的文件来创建流或文件对象时,将发生FileNotFoundException异常。
通过输入流来读取文件时,如果过早地到达文件尾,将发生EOFException异常。
这些异常都是IOExceiption的子类。为了处理所有这些异常,一种方式是将所有的输入和输出流放在一个捕获IOException异常的try-catch块中。然后,在catch块中调用异常的toString()或getMessage()方法,以了解有关异常的更详细的信息。