[Input|Output]Streams从 JDK1.0 开始存在,而它们的字符对应Readers|Writers从 JDK1.1 开始存在。
大多数概念看起来都很相似,除了一个例外:流的基类声明了一个一次处理一个字节的抽象方法,而基本读取器/写入器类声明了一个处理整个char
数组的抽象方法。
因此,假设我理解正确,每个重写的流类都仅限于处理单个字节(从而为每个字节执行至少一个方法调用!),而重写的读取器/写入器只需要每个数组(-缓冲区)的方法调用。
这不是一个巨大的性能问题吗?
流可以实现为InputStream
or的子类OutputStream
,但仍然基于byte
-arrays?