Java PrintWriter的用法(附带实例)
Java 提供了大量与“流”操作和处理相关的类。它们把数据传送的细节封装起来。利用这些类编程,程序员就可以不用考虑底层设备及操作系统的细节。
Java 中的“流”类位于 java.io 包或 java.nio 包中,其中 PrintWriter 类的层次结构如下图所示:

图 1 I/O 流类的层次结构图
Java 中的 PrintWriter 在功能上与 PrintStream 类似,向字符输出流输出对象的格式化表示形式。除了接收文件名字符串和 OutputStream 实例作为变量之外,PrintWriter还可以接收Writer对象作为输出的对象。
这个类实现 PrintStream 中的所有输出方法。PrintWriter 的所有 print() 和 println() 都不会抛出 I/O 异常。客户通过 PrintWriter 的 checkError() 方法可以查看写数据是否成功,如果返回 true 表示成功,否则表示出现了错误。
PrintWriter 和 PrintStream 的 println(String s) 方法都能输出字符串。两者的区别是 PrintStream 只能使用本地平台的字符编码,而 PrintWriter 使用的字符编码取决于所连接的 Writer 类所使用的字符编码。
PrintWriter 的构造方法如下:
以下是一个简单的 PrintWriter 用法示例。
【实例】PrintWriter 类的应用。使用 PrintWriter 向文本文件中写入各种类型的数据。

图 1 运行结果
Java 中的“流”类位于 java.io 包或 java.nio 包中,其中 PrintWriter 类的层次结构如下图所示:

图 1 I/O 流类的层次结构图
Java 中的 PrintWriter 在功能上与 PrintStream 类似,向字符输出流输出对象的格式化表示形式。除了接收文件名字符串和 OutputStream 实例作为变量之外,PrintWriter还可以接收Writer对象作为输出的对象。
这个类实现 PrintStream 中的所有输出方法。PrintWriter 的所有 print() 和 println() 都不会抛出 I/O 异常。客户通过 PrintWriter 的 checkError() 方法可以查看写数据是否成功,如果返回 true 表示成功,否则表示出现了错误。
PrintWriter 和 PrintStream 的 println(String s) 方法都能输出字符串。两者的区别是 PrintStream 只能使用本地平台的字符编码,而 PrintWriter 使用的字符编码取决于所连接的 Writer 类所使用的字符编码。
PrintWriter 的构造方法如下:
- PrintWriter(File file):使用指定文件创建不具有自动行刷新的 PrintWriter。
- PrintWriter(File file,String csn):创建具有指定文件和字符集且不带自动刷行新的 PrintWriter。
- PrintWriter(OutputStream out):根据现有的 OutputStream 创建不带自动行刷新的 PrintWriter。
- PrintWriter(OutputStream out,boolean autoFlush):通过现有的 OutputStream 创建新的 PrintWriter。
- PrintWriter(String fileName):创建具有指定文件名称且不带自动行刷新的 PrintWriter。
- PrintWriter(String fileName, String csn):创建具有指定文件名称和字符集且不带自动行刷新的 PrintWriter。
以下是一个简单的 PrintWriter 用法示例。
【实例】PrintWriter 类的应用。使用 PrintWriter 向文本文件中写入各种类型的数据。
import java.io.*; public class PrintWriterExample { public static void main(String[] args) { try { // 创建一个 PrintWriter 对象,指定输出文件 PrintWriter writer = new PrintWriter(new File("d:\\output.txt")); // 输出文本内容 writer.println(" 这是一段文本内容 "); writer.print(" 这是另一段 "); writer.print(" 文本内容 "); // 输出变量和数据 int count = 10; double price = 19.99; writer.println(" 产品数量 :" + count); writer.println(" 产品价格 :" + price); // 关闭 PrintWriter 对象 writer.close(); } catch (FileNotFoundException e) { System.out.println(" 文件不存在!"); e.printStackTrace(); } } }运行该程序,打开“d:\\output.txt”文件,结果如下图所示。

图 1 运行结果