gpt4 book ai didi

java - PrintStream 与 PrintWriter

转载 作者:IT老高 更新时间:2023-10-28 20:40:56 25 4
gpt4 key购买 nike

我已经搜索了该站点并找到了一些答案,但我无法理解这两个类之间的区别。有人可以解释这两个类之间的区别吗?

最佳答案

PrintStream 是处理编码字符和其他数据类型的原始桥梁。如果您查看 java.io.OutputStream 的 javadoc,您将看到仅用于编写两种不同数据类型的方法:byteint

在 JDK (1.0.x) 的早期版本中,当您想要写入字符时,您可以执行以下两种操作之一,将字节写入输出流(假定在系统默认字符集中):

outputStream.write("foobar".getBytes());

或将另一个 outputStream 包装在 PrintStream 中:

PrintStream printStream = new PrintStream(outputStream);
printStream.write("foobar");

看到区别了吗? PrintStream 正在处理字符到字节的转换以及编码(上面的构造函数调用使用系统默认编码,但您可以将其作为参数传递)。它还提供了编写doubleboolean等的便捷方法......

其实System.outSystem.err都被定义为PrintStream实例。

JDK 1.1 随之而来,他们意识到他们需要一种更好的方法来处理纯字符数据,因为 PrintStream 仍然具有基于字节的写入方法。于是他们引入了Writer抽象类来严格处理charStringint数据。

PrintWriterdoubleboolean 等其他类型添加方法...

现在 PrintWriter 也有 format()/printf() 格式打印等方法...

作为一般规则,如果您正在写入字符数据,请使用 Writer 实例。如果您正在编写二进制(或混合)数据,请使用 OutputStream 实例。

关于java - PrintStream 与 PrintWriter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11372546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com