[英]Why use Printwriter over PrintStream in Java for outputting human readable text
java 文档说在处理文本时使用 Printwriter 而不是 Printstream,但为什么会这样呢? 我知道 Printwriter 处理字符流,而 Printstream 处理字节流,但最终它们的两个字节。 并且由于 Java 1.5 PrintStream 已经不限于使用平台默认编码; 有接受字符集名称的构造函数。 那么 Printwriter 比 Printstream 有什么好处呢?
PrintStream
是古老的。 更喜欢PrintWriter
。 实际上,最好都不使用,因为这两个类都会默默地吞下异常。
我建议使用由BufferedWriter
包装的OutputStreamWriter
。
PrintStream
不能使用默认字符集以外的字符编码。 如果您需要将字符串编写为 UTF-8 字节,并且默认的 JVM 字符集是 Windows-1252(就像在 Windows 上运行 Java 一样, PrintWriter
和PrintStream
可以做到这一点)。 这是主要的区别,我认为。
PrintWriter
不允许您写入byte[]
,而PrintStream
则允许。 允许直接写入byte[]
会通过混合不应混合的字符编码来增加出错的可能性。
PrintWriter
允许您直接写入char[]
而PrintStream
不允许。
PrintWriter
允许您在不分配新字符串的情况下编写字符串的切片。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.