4.6 过滤流
过滤流在读/写数据的同时可以对数据进行处理,它提供了同步机制,使得某一时刻只有一个线程可以访问一个I/O流,以防止多个线程同时对一个I/O流进行操作所带来的意想不到的结果。类FilterInputStream和FilterOutputStream分别作为所有过滤输入流和输出流的父类
过滤流类层次:
java.lang.Object | +----java.io.InputStream | +----java.io.FilterInputStream
为了使用一个过滤流,必须首先把过滤流连接到某个输入/出流上,通常通过在构造方法的参数中指定所要连接的输入/出流来实现。例如:
FilterInputStream( InputStream in ); FilterOutputStream( OutputStream out );
4.6.1 几种常见的过滤流
◇ BufferedInputStream和BufferedOutputStream 缓冲流,用于提高输入/输出处理的效率。
◇ DataInputStream 和 DataOutputStream 不仅能读/写数据流,而且能读/写各种的java语言的基本类型,如:boolean,int,float等。
◇ LineNumberInputStream 除了提供对输入处理的支持外,LineNumberInputStream可以记录当前的行号。
◇ PushbackInputStream 提供了一个方法可以把刚读过的字节退回到输入流中,以便重新再读一遍。
◇ PrintStream 打印流的作用是把Java语言的内构类型以其字符表示形式送到相应的输出流。
|