Java I/O 系统 (三)
添加属性和有用的接口
FilterInputStream和FilterOutputStream是用来提供装饰器类接口以控制特定输入流(InputStream)和输出流(OutputStream)的两个类,他们的名字不是很直观,FilterInputStream和FilterOutputStream分别来自I/O类库中的基类InputStream和OutputStream,这两个类是装饰器的必要条件。
?
一、通过FilterInputStream从InputStream读取数据
FilterInputStream类能够完成两件完全不同的事情。
?
InputStream
包含用于读取基本类型数据的全部接口?
?BufferedInputStream?使用它可以防止每次读取数据时都得进行实际写操作。代表“使用缓冲区”InputStream
可以指定缓冲区大小,本质上不提供接口,只不过是向进程中添加缓冲区所必需的。与接口对象搭配?
?LineNumberInputStream?跟踪输入流中的行号;可调用getLineNumber()和setLineNumber(int)InputStream
仅增加了行号,因此可能要与接口对象搭配使用?
?PushbackInputStream?具有“能弹出一个字节的缓冲区”。因此可以将读到最后的一个字符回退。InputStream
通常作为编辑器的扫描器,之所以包含在内是因为java编译器的需要,我们可能永远不会用到。
?
?
二、通过FilterOutputStream向OutputStream写入
与DataInputStream对应的是DataOutputStream,它可以将各种基本数据类型以及String对象格式化输出到流中,这样一来,任何机器上的任何DataInputStream都能够读取他们,所有的方法都以write开头。
?
?
FilterOutputStream类型类功能构造器参数|如何使用DataOutputStream与DataInputStream搭配使用,因此可以按照可移植方式向流中写入基本类型数据OutputStream
包含用于写入基本类型数据的全部接口
PrintStream用于产生格式化输出,其中DataOutputStream处理数据的存储,PrintStream处理显示。OutputStream,可以用boolean值指示是否在每次换行是清空缓冲区,应该是对OutputStream对象的final封装。
可能会经常使用到他。
BufferedOutputStream使用他以避免每次发送数据时都要进行实际的写操作。代表“使用缓冲区”。可以调用flush()清空缓冲区。OutputStream,可以指定缓冲区大小。
本质上并不提供接口,只不过是向进程中添加缓冲区所必需的。
与接口对象搭配。
?
?
?