Java PrintWriter 类

java.io 包中的 PrintWriter 类可用于以一种普遍可读的格式(文本)写入输出数据。

它继承自抽象类Writer

The PrintWriter class is a subclass of Java Writer.


PrintWriter 的工作原理

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

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

注意PrintWriter 类还具有自动刷新功能。这意味着如果在调用 println()printf() 方法之一时,它会强制 writer 将所有数据写入目标。


创建 PrintWriter

要创建打印 writer,我们必须首先导入 java.io.PrintWriter 包。导入包后,我们可以这样创建打印 writer。

1. 使用其他 writer

// Creates a FileWriter
FileWriter file = new FileWriter("output.txt");

// Creates a PrintWriter
PrintWriter output = new PrintWriter(file, autoFlush);

这里,

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

2. 使用其他输出流

// Creates a FileOutputStream
FileOutputStream file = new FileOutputStream("output.txt");

// Creates a PrintWriter
PrintWriter output = new PrintWriter(file, autoFlush);

这里,

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

3. 使用文件名

// Creates a PrintWriter
PrintWriter output = new PrintWriter(String file, boolean autoFlush);

这里,

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

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

// Creates a PrintWriter using some character encoding
PrintWriter output = new PrintWriter(String file, boolean autoFlush, Charset cs);

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


PrintWriter 的方法

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

print() 方法

  • print() - 将指定数据打印到 writer。
  • println() - 将数据打印到 writer,并在末尾添加一个换行符。

例如,

import java.io.PrintWriter;

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

    String data = "This is a text inside the file.";

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

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

在上面的示例中,我们创建了一个名为 output 的打印 writer。此打印 writer 与文件 output.txt 关联。

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

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

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

This is a text inside the file.

printf() 方法

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

printf("I am %d years old", 25);

这里,

  • I am %d years old 是一个格式化字符串。
  • %d 是格式化字符串中的整数数据。
  • 25 是一个参数。

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

因此,%d25 替换。


示例:使用 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("I am %d years old.", age);
      output.close();
    }
    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

在上面的示例中,我们创建了一个名为 output 的打印 writer。此打印 writer 与文件 output.txt 关联。

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

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

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

I am 25 years old.

PrintWriter 的其他方法

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

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

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战