更改“流”的行为

来源:互联网 发布:社交软件营销策略 编辑:程序博客网 时间:2024/06/05 20:14
对于输入流和输出流来说,为了满足特殊需要,我们会使用 FilterInputStream
FilterOutputStream 的修饰器子类来修改“流”。Reader  和 Writer 的类继承层次结构继
续沿用相同的思想——但是并不完全相同。


在下表中,相对于前一表格来说,左右之间的对应关系的近似程度更加粗略一些。造成这种
差别的原因是因为类的组织形式不同;尽管 BufferedOutputStream 是
FilterOutputStream 的子类,但是 BufferedWriter 并不是 FilterWriter 的子类(尽管
FilterWriter 是抽象类而且没有任何子类。因此把它放在那里,也只是把它作为一个占位符

或仅仅让我们不会疑惑它在哪里)。然而,这些类的接口却十分相似。

有一点很清楚:无论我们何时使用 readLine(),都不应该使用 DataInputStream(这会
遭到编译器的强烈反对),而应该使用 BufferedReader。除了这一点,DataInputStream
仍是 I/O 类库的首选成员。


为了更容易地过渡到使用 PrintWriter,它提供了一个既能接受 Writer 对象又能接受任何
OutputStream 对象的构造器。然而,PrintWriter 对格式化的支持程度并不比
PrintStream 强;二者的接口几乎是一样的。


PrintWriter 构造器还有一个选项,就是自动执行清空,如果构造器设置选择此项,则在每
个 Println()执行之后,便会自动清空。