📜  Java PrintWriter类别

📅  最后修改于: 2020-09-26 15:19:17             🧑  作者: Mango

在本教程中,我们将借助示例学习Java PrintWriter及其print()和printf()方法。

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

它扩展了抽象类Writer

The PrintWriter class is a subclass of Java Writer.


PrintWriter的工作

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

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

注意PrintWriter类还具有自动冲洗功能。这意味着如果调用了println()printf()方法之一,它将迫使编写器将所有数据写入目标。


创建一个PrintWriter

为了创建打印作者,我们必须首先导入java.io.PrintWriter包。导入包后,便可以在这里创建打印书写器。

1.使用其他作家

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

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

这里,

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

2.使用其他输出流

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

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

这里,

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

3.使用文件名

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

这里,

  • 我们已经创建了一个打印作家,它将数据写入指定的文件
  • 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() -打印数据的写入器,并在最后一个新行字符沿

例如,

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的打印作家。该打印作家与文件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);

这里,

  • 我今年%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("I am %d years old.", age);
      output.close();
    }
    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

在上面的示例中,我们创建了一个名为output的打印作家。打印作家与文件output.txt链接。

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

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

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

I am 25 years old.

PrintWriter的其他方法
Method Description
close() closes the print writer
checkError() checks if there is an error in the writer and returns a boolean result
append() appends the specified data to the writer

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