打印流和&为PrintWriter

时间:2011-01-23 19:56:19

标签: java printstream

当out为用于显示字节的打印流类型时,System.out.println()方法如何在屏幕上打印字符

4 个答案:

答案 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它通过这个编写器传递所有字符以产生输出字节。