为什么System.out/err在Java中实现为Byte Streams?

hha*_*fez 3 java iostream

我在Sun的命令行I/O 上看了一下这个教程.它表示:

您可能希望标准流是字符流,但由于历史原因,它们是字节流.System.out和System.err定义为PrintStream对象.虽然从技术上讲它是字节流,但PrintStream利用内部字符流对象来模拟字符流的许多功能.

有谁知道"历史原因"是什么?

Dar*_*ron 6

"历史原因"是Java 1.0中不存在字符流.显然,Sun意识到字符转换模型不足,并且在Java 1.1中添加了面向字符的Reader/Writer类层次结构.

但是对于System.out和朋友来说已经太晚了.