当 out 是用于显示字节的打印流类型时,System.out.println() 方法如何在屏幕上打印字符
问问题
983 次
4 回答
11
PrintStream
在 Java 1.0 中引入并在其他中使用System.out
。后来他们意识到使用平台默认编码将字节转换为字符是一个重大错误,因此他们PrintWriter
后来引入了 Java 1.1,它能够接受一个OutputStreamWriter
您可以指定字符编码的地方。然而改变已经太迟了System.out
。
于 2011-01-23T20:06:32.883 回答
3
我猜这段代码(来自java.lang.System
)解释了它:
FileOutputStream fdOut = new FileOutputStream(FileDescriptor.out);
setOut0(new PrintStream(new BufferedOutputStream(fdOut, 128), true));
它正在创建FileOutputStream
标准输出,然后将其包装在PrintStream
. FileDescriptor.out
是“标准输出流的句柄”。
它使用平台默认编码将字节转换为字符。
于 2011-01-23T20:04:32.423 回答
0
System.out 是一个特殊的 PrintStream,它的输出显示在控制台上。在这里查看更多文档。
于 2011-01-23T20:01:24.857 回答
0
PrintStream
是一个字节流并且PrintWriter
是一个字符流,但在最低级别,一切都是面向字节的,我在某处读过每个都PrintStream
包含一个OutputStreamWriter
,并且它将所有字符通过这个编写器传递以产生用于输出的字节。
于 2012-08-22T06:06:53.877 回答