我期望字符流和字节流之间在类的层次结构方面具有一一对应的关系。FilterReader
和FilterWriter
(字符流)对应于FilterInputStream
和FilterOutputStream
(字节流)类。
但是我注意到很少的变化-BufferedInputStream
扩展FilterInputStream
,但是BufferedReader
不扩展FilterReader
。BufferedOutputStream
和PrintStream
都扩展FilterOutputStream
,但是BufferedWriter
和PrintWriter
不扩展FilterWriter
。FilterInputStream
和FilterOutputStream
不是抽象类,但FilterReader
和FilterWriter
是抽象类。
我不确定自己是否太偏执,无法指出这种差异,但只是好奇地知道这种决定背后是否存在设计推理。
最佳答案
Input/OutputStream
类已经是Java 1.0的一部分,而Reader/Writer
类仅在Java 1.1中添加。但是,没有一种语言更改似乎可以解释您提到的设计差异。