跳到主要内容

Java PrintWriter 类

提示
  1. 文本格式输出PrintWriter 类用于将原始数据(如 intfloatchar)转换成文本格式,并写入写入器。
  2. 创建方式:可以通过使用 FileWriterFileOutputStream 或直接指定文件名来创建 PrintWriter,支持自动刷新。
  3. 主要方法:提供 print()println()printf() 方法用于格式化输出文本,以及 checkError() 方法来检查写入器中的错误。

java.io 包中的 PrintWriter 类可以用来以通常可读的形式(文本)输出数据。

它继承了抽象类 Writer

PrintWriter 类是 Java Writer 的子类。

PrintWriter 的工作原理

与其他写入器不同,PrintWriter 将原始数据(intfloatchar 等)转换为文本格式。然后,它将这些格式化数据写入写入器。

此外,PrintWriter 类不会抛出任何输入/输出异常。相反,我们需要使用 checkError() 方法来查找其中的任何错误。

注意PrintWriter 类也具有自动刷新的特性。这意味着如果调用了 println()printf() 方法之一,它会强制写入器将所有数据写入目的地。

创建 PrintWriter

要创建打印写入器,我们首先必须导入 java.io.PrintWriter 包。一旦我们导入了包,以下是我们如何创建打印写入器的方法。

1. 使用其他写入器

// 创建 FileWriter
FileWriter file = new FileWriter("output.txt");

// 创建 PrintWriter
PrintWriter output = new PrintWriter(file, autoFlush);

这里,

  • 我们创建了一个打印写入器,它会将数据写入由 FileWriter 表示的文件
  • autoFlush 是一个可选参数,指定是否执行自动刷新

2. 使用其他输出流

// 创建 FileOutputStream
FileOutputStream file = new FileOutputStream("output.txt");

// 创建 PrintWriter
PrintWriter output = new PrintWriter(file, autoFlush);

这里,

  • 我们创建了一个打印写入器,它会将数据写入由 FileOutputStream 表示的文件
  • autoFlush 是一个可选参数,指定是否执行自动刷新

3. 使用文件名

// 创建 PrintWriter
PrintWriter output = new PrintWriter(String file, boolean autoFlush);

这里,

  • 我们创建了一个打印写入器,它会将数据写入指定的文件
  • autoFlush 是一个可选的布尔参数,指定是否执行自动刷新

注意:在所有上述情况下,PrintWriter 都会使用某种默认字符编码将数据写入文件。然而,我们也可以指定字符编码(UTF8UTF16)。

// 使用某种字符编码创建 PrintWriter
PrintWriter output = new PrintWriter(String file, boolean autoFlush, Charset cs);

这里,我们使用了 Charset 类来指定字符编码。要了解更多,请访问 Java Charset(官方 Java 文档)

PrintWriter 的方法

PrintWriter 类提供了多种方法,允许我们将数据打印到输出中。

  • print() - 将指定数据打印到写入器
  • println() - 将数据连同最后的换行字符一起打印到写入器

例如,

import java.io.PrintWriter;

class Main {
public static void main(String[] args) {

String data = "这是文件中的文本。";

try {
PrintWriter output = new PrintWriter("output.txt");

output.print(data);
output.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}

在上述示例中,我们创建了一个名为 output 的打印写入器。这个打印写入器与文件 output.txt 相连。

PrintWriter output = new PrintWriter("output.txt");

为了将数据打印到文件中,我们使用了 print() 方法。

当我们运行程序时,output.txt 文件中填充了以下内容。

这是文件中的文本。

printf() 方法

printf() 方法可用于打印格式化的字符串。它包括 2 个参数:格式化字符串和参数。例如,

printf("我今年 %d 岁", 25);

这里,

  • 我今年 %d 岁 是一个格式化字符串
  • %d 是格式化字符串中的整数数据
  • 25 是一个参数

格式化字符串包括文本和数据。参数则替换格式化字符串中的数据。

因此 %d 被替换为 25

示例:使用 PrintWriter 的 printf() 方法

import java.io.PrintWriter;

class Main {
public static void main(String[] args) {

try {
PrintWriter output = new PrintWriter("output.txt");

int age = 25;

output.printf("我今年 %d 岁。", age);
output.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}

在上述示例中,我们创建了一个名为 output 的打印写入器。这个打印写入器与文件 output.txt 相连。

PrintWriter output = new PrintWriter("output.txt");

为了将格式化文本打印到文件中,我们使用了 printf() 方法。

当我们运行程序时,output.txt 文件中填充了以下内容。

我今年 25 岁。

PrintWriter 的其他方法

方法描述
close()关闭打印写入器
checkError()检查写入器中是否有错误,并返回布尔值结果
append()将指定数据追加到写入器

要了解更多,请访问 Java PrintWriter(官方 Java 文档)