PrintWriter是Java中的一个重要的输出流类,它继承了Writer抽象类,用于实现方便的打印功能。本文将详细介绍PrintWriter的用法、特点、构造方法、常用方法以及代码例子,最后给出运行结果。
一、PrintWriter简介
-
PrintWriter特点
- (1)PrintWriter提供了丰富的打印方法,如print、println等,方便输出各种类型的数据。
- (2)PrintWriter可以自动刷新输出缓冲区,避免数据丢失。
- (3)PrintWriter支持格式化输出,类似于C语言中的printf函数。
- (4)PrintWriter可以指定字符集编码,方便处理不同语言的文本。
-
PrintWriter与PrintStream的区别
- (1)PrintWriter是基于字符的输出流,而PrintStream是基于字节的输出流。
- (2)PrintWriter提供了更多的格式化输出方法,如printf。
- (3)PrintWriter默认使用平台默认字符集编码,而PrintStream默认使用平台默认字节编码。
-
二、PrintWriter构造方法 PrintWriter提供了多个构造方法,以下列举几个常用的:
-
PrintWriter(Writer out) 创建一个新的PrintWriter,不带自动行刷新,使用指定的Writer。
-
PrintWriter(Writer out, boolean autoFlush) 创建一个新的PrintWriter,可以指定是否自动行刷新,使用指定的Writer。
-
PrintWriter(OutputStream out) 创建一个新的PrintWriter,不带自动行刷新,使用指定的OutputStream。
-
PrintWriter(OutputStream out, boolean autoFlush) 创建一个新的PrintWriter,可以指定是否自动行刷新,使用指定的OutputStream。
-
三、PrintWriter常用方法
-
print(Object obj) 打印obj对象的字符串表示形式。
-
println(Object obj) 打印obj对象的字符串表示形式,并换行。
-
printf(String format, Object... args) 使用指定的格式字符串和参数进行格式化输出。
-
flush() 刷新输出缓冲区。
-
close() 关闭流,并释放相关资源。 四、代码例子 以下是一个使用PrintWriter的示例代码:
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class PrintWriterExample {
public static void main(String[] args) {
try {
// 创建FileWriter对象,用于写入文件
FileWriter fileWriter = new FileWriter("example.txt");
// 创建PrintWriter对象,指定autoFlush为true,以便自动刷新输出缓冲区
PrintWriter printWriter = new PrintWriter(fileWriter, true);
// 使用print方法输出字符串
printWriter.print("Hello, ");
// 使用println方法输出字符串并换行
printWriter.println("World!");
// 使用printf方法格式化输出
printWriter.printf("整数:%d,小数:%f,字符串:%s%n", 10, 3.14, "Java");
// 关闭PrintWriter
printWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
运行结果: 在项目根目录下生成一个名为example.txt的文件,文件内容如下:
Hello, World!
整数:10,小数:3.140000,字符串:Java