在本教程中,我们将通过示例来学习Java PrintWriter及其print()和printf()方法。
java.io包的PrintWriter类可用于以通常可读的形式(文本)写入输出数据。
它继承了抽象类Writer。
与其他写入器不同,PrintWriter将原始数据(int、float、char等)转换为文本格式。然后它将格式化的数据写入到写入器。
另外,PrintWriter类不会抛出任何输入/输出异常。相反,我们需要使用checkError()方法来查找其中的任何错误。
注意:PrintWriter类还具有自动冲洗功能。这意味着,如果调用println()或printf()方法之一,它将强制写入器将所有数据写入目标。
为了创建打印写入器,我们必须导入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使用某些默认字符编码将数据写入文件。 但是,我们也可以指定字符编码(UTF8或UTF16)。
//使用某些字符编码创建一个PrintWriter PrintWriter output = new PrintWriter(String file, boolean autoFlush, Charset cs);
在这里,我们使用了 字符集指定字符编码的类。
PrintWriter类提供了各种方法,使我们可以将数据打印到输出中。
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()方法可用于打印格式化的字符串。它包含2个参数:格式化的字符串和参数。例如,
printf("I am %d years old", 25);
这里,
I am %d years old 是一个格式化字符串
%d 是格式化字符串中的整数数据
25 是一个参数
格式化的字符串包括文本和数据。 并且,参数替换格式化字符串中的数据。
因此,将%d替换为25。
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.
方法 | 描述 |
---|---|
close() | 关闭PrintWriter |
checkError() | 检查写入器中是否有错误,并返回布尔结果 |
append() | 将指定的数据追加到写入器 |