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