printstream 是 java 中用于格式化文本输出的便捷类,常用作 system.out;支持 print/println/printf 方法,可重定向到文件并指定编码,与 printwriter 相比更偏向字节流且能安全打印 null。

PrintStream 是 Java 中用于格式化输出的便捷类,最常用的就是 System.out(它就是一个 PrintStream 实例)。它能自动处理字符编码、换行、类型转换,比 OutputStream 更适合打印文本。
直接使用 System.out(最常用)
无需创建对象,开箱即用:
-
System.out.print("Hello")—— 不换行输出 -
System.out.println("World")—— 输出后自动换行 -
System.out.printf("Value: %d, Name: %s", 42, "Alice")—— 支持格式化字符串(类似 C 的 printf)
重定向输出到文件或其它流
可以把打印目标从控制台换成文件,方便日志或导出:
- 用
FileOutputStream构造PrintStream:
- 之后所有操作都写入文件:
ps.printf("Count: %d", 100);
- 记得关闭(尤其在非 System.out 场景下):
ps.close()
处理异常与编码(进阶注意点)
PrintStream 默认使用平台默认编码,可能造成中文乱码。建议显式指定:
- 构造时传入编码名(如 UTF-8):
- 第二个参数
true表示启用自动 flush(每次println后立即写入,避免缓冲延迟) - 捕获
UnsupportedEncodingException或用StandardCharsets.UTF_8(Java 7+)更安全
和 PrintWriter 的区别(简单辨析)
两者功能相似,但关键差异在于:
-
PrintStream继承自OutputStream,原始设计面向字节,支持print(byte)等;可安全打印null(输出字符串 "null") -
PrintWriter继承自Writer,纯字符导向,对编码控制更自然;但某些构造方式不抛异常(需手动检查checkError()) - 日常打印文本,二者均可;若涉及二进制混合或习惯
System.out风格,优先用PrintStream
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











