PrintWriter是Java中用于格式化文本输出的类,属于java.io包,提供print、println、printf等方法写入数据,不抛IOException而通过checkError()检测错误。可输出到控制台或文件,常用构造方法包括PrintWriter(System.out, true)实现自动刷新,或结合FileWriter、OutputStreamWriter指定文件路径和编码(如UTF-8)。写入时println和printf支持换行与格式化,建议使用try-with-resources确保资源自动关闭,避免数据丢失。适用于日志、配置生成等文本场景,但不处理二进制数据,需注意覆盖与追加模式的选择。

在Java中,PrintWriter 是一个非常实用的类,用于向文件或输出流中写入格式化的文本数据。它属于 java.io 包,提供了打印各种数据类型(如字符串、整数、布尔值等)的方法,并且不会抛出 IOException,而是通过 checkError() 方法来检测错误状态,这使得它在文本输出场景中使用起来更加方便。
创建 PrintWriter 对象
要使用 PrintWriter,首先需要创建它的实例。可以根据不同的输出目标选择构造方法:
- 输出到控制台:
PrintWriter out = new PrintWriter(System.out, true);
第二个参数 true 表示自动刷新缓冲区。 - 输出到文件:
PrintWriter out = new PrintWriter("output.txt");
此方式会将内容写入指定文件,若文件不存在则创建,存在则覆盖。 - 配合 FileWriter 使用(推荐用于中文或复杂路径):
PrintWriter out = new PrintWriter(new FileWriter("data.txt", false));
第二个参数为 true 时追加内容,false 时覆盖原文件。
写入文本数据
PrintWriter 提供了多个写入方法,常用如下:
- print(String s):输出字符串不换行。
- println(String s):输出字符串并换行。
- printf(String format, Object... args):格式化输出,类似 System.out.printf。
- write(String s):直接写入字符串,可多次调用。
示例代码:
立即学习“Java免费学习笔记(深入)”;
Python v2.4版chm格式的中文手册,内容丰富全面,不但是一本手册,你完全可以把她作为一本Python的入门教程,教你如何使用Python解释器、流程控制、数据结构、模板、输入和输出、错误和异常、类和标准库详解等方面的知识技巧。同时后附的手册可以方便你的查询。
PrintWriter out = new PrintWriter("hello.txt");
out.println("Hello, Java!");
out.print("Name: ");
out.println("Alice");
out.printf("Age: %d, Score: %.2f%n", 20, 89.5);
out.close();
关闭资源与异常处理
使用完 PrintWriter 后必须调用 close() 方法释放资源。建议使用 try-with-resources 语句确保自动关闭:
try (PrintWriter out = new PrintWriter(new FileWriter("log.txt"))) {
out.println("Start processing...");
out.println("Done.");
} catch (IOException e) {
System.err.println("写入失败:" + e.getMessage());
}
如果不显式关闭,可能导致数据未完全写入文件。
注意事项与使用建议
- PrintWriter 的 write 或 print 操作不会主动抛出异常,遇到错误时会设置内部错误标志。可通过 checkError() 判断是否出错。
- 对文件操作时,注意编码问题。若需指定字符编码,建议结合 OutputStreamWriter 使用:
new PrintWriter(new OutputStreamWriter(new FileOutputStream("data.txt"), "UTF-8"));
基本上就这些。PrintWriter 使用简单、语法清晰,是 Java 中进行文本输出的常用工具之一,特别适合日志记录、配置生成和格式化文本导出等场景。掌握其构造方式、写入方法和资源管理,能有效提升开发效率。









