java.io
包的PrintWriter
类可用于以通常可读的形式(文本)写入输出数据。
它扩展了抽象类Writer
。
PrintWriter的工作
与其他编写器不同, PrintWriter
将原始数据( int
, float
, char
等)转换为文本格式。然后,它将格式化的数据写入写入器。
另外, 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
使用某些默认字符编码将数据写入文件。但是,我们也可以指定字符编码( UTF8或UTF16 )。
// 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官方文档)。