java.io
包的PrintStream
类可用于以通常可读的形式(文本)而不是字节写入输出数据。
它扩展了抽象类OutputStream
。
PrintStream的工作
与其他输出流不同, PrintStream
将原始数据(整数, 字符)转换为文本格式,而不是字节格式。然后,它将格式化的数据写入输出流。
而且, PrintStream
类不会引发任何输入/输出异常。相反,我们需要使用checkError()
方法来查找其中的任何错误。
注意 : PrintStream
类还具有自动冲洗功能。这意味着它将在以下情况之一下强制输出流将所有数据写入目标:
- 如果换行字符
\n
写入打印流 - 如果
println()
方法被调用 - 如果在打印流中写入了字节数组
创建一个PrintStream
为了创建PrintStream
,我们必须首先导入java.io.PrintStream
包。导入包后,便可以在此处创建打印流。
1.使用其他输出流
// Creates a FileOutputStream
FileOutputStream file = new FileOutputStream(String file);
// Creates a PrintStream
PrintStream output = new PrintStream(file, autoFlush);
这里,
- 我们创建了一个打印流,它将格式化的数据写入由
FileOutputStream
表示的文件中 - autoFlush是一个可选的布尔参数,用于指定是否执行自动刷新
2.使用文件名
// Creates a PrintStream
PrintStream output = new PrintStream(String file, boolean autoFlush);
这里,
- 我们创建了一个打印流,它将格式化的数据写入指定的文件
- autoFlush是一个可选的布尔参数,用于指定是否执行自动刷新
注意 :在两种情况下, PrintStream
使用某些默认字符编码将数据写入文件。但是,我们也可以指定字符编码( UTF8或UTF16 )。
// Creates a PrintStream using some character encoding
PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs);
在这里,我们使用了Charset
类来指定字符编码。要了解更多信息,请访问Java Charset(Java官方文档)。
PrintStream的方法
PrintStream
类提供了各种方法,使我们可以将数据打印到输出中。
print()方法
-
print()
-将指定的数据打印到输出流 -
println()
-打印数据到输出流,并在最后一个新行字符沿
示例:System类的print()方法
class Main {
public static void main(String[] args) {
String data = "Hello World.";
System.out.print(data);
}
}
输出
Hello World.
在上面的示例中,我们尚未创建打印流。但是,我们可以使用PrintStream
类的print()
方法。
您可能想知道这怎么可能。好吧,让我解释一下这里发生了什么。
注意这一行,
System.out.print(data);
这里,
-
System
是最终班,负责执行标准的输入/输出操作 -
out
是在System
类中声明的PrintStream
类型的类变量
现在,由于out
是PrintStream
类型的,因此我们可以使用它来调用PrintStream
类的所有方法。
示例:带有PrintStream类的print()方法
import java.io.PrintStream;
class Main {
public static void main(String[] args) {
String data = "This is a text inside the file.";
try {
PrintStream output = new PrintStream("output.txt");
output.print(data);
output.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
在上面的示例中,我们创建了一个名为output的打印流。打印流与output.txt文件链接。
PrintStream output = new PrintStream("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 。
示例:使用PrintStream的printf()方法
import java.io.PrintStream;
class Main {
public static void main(String[] args) {
try {
PrintStream output = new PrintStream("output.txt");
int age = 25;
output.printf("I am %d years old.", age);
output.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
在上面的示例中,我们创建了一个名为output的打印流。打印流与文件output.txt链接。
PrintStream output = new PrintStream("output.txt");
要将格式化的文本打印到文件中,我们使用了printf()
方法。
在这里,当我们运行程序时, output.txt文件将填充以下内容。
I am 25 years old.
PrintStream的其他方法
Methods | Descriptions |
---|---|
close() |
closes the print stream |
checkError() |
checks if there is an error in the stream and returns a boolean result |
append() |
appends the specified data to the stream |
要了解更多信息,请访问Java PrintStream(Java官方文档)。