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语言的内构类型以其字符表示形式送到相应的输出流。