编辑这个页面须要登录或更高权限!

Java PrintWriter 类

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

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

它继承了抽象类Writer。

PrintWriter类是Java Writer的子类。

PrintWriter的工作方式

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

另外,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.使用其他输出流

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

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

这里,

  • 我们创建了一个打印写入器,它将数据写入由FileWriter表示的文件

  • 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);

在这里,我们使用了 字符集指定字符编码的类。

PrintWriter的方法

PrintWriter类提供了各种方法,使我们可以将数据打印到输出中。

print()方法

  • print() - 将指定的数据打印到写入器

  • 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);

这里,

  • I am %d years old 是一个格式化字符串

  • %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的其他方法

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

Java 菜鸟教程
Java 流程控制
Java 数组
Java 面向对象(I)
Java 面向对象(II)
Java 面向对象(III)
Java 异常处理
Java 列表(List)
Java Queue(队列)
Java Map集合
Java Set集合
Java 输入输出(I/O)
Java Reader/Writer
Java 其他主题