想要查看此教程的目录请点击:Java IO教程目录贴地址
Java的PrintStream类(java.io.PrintStream)可以让你将格式化数据写入到OutputStream底层。可以格式化Java基本数据类型,比如int,long等。格式化成文本而不是成字节。这就是为什么称为PrintStream。
PrintStream例子
下面是一个关于PrintStream的例子:
PrintStream printStream = new PrintStream(outputStream);
printStream.print(true);
printStream.print((int) 123);
printStream.print((float) 123.456);
printStream.close();
首先创建一个PrintStream实例并在构造方法中传入OutputStream。然后打印了三个Java基本类型的数据。最后关闭流。
为了简便起见,在示例中省略了PrintStream所写的输出流的实例。PrintStream有很多构造方法,可以以File作为参数,也可以是OutputStream等。
System.out和System.err都是PrintStream
你可能熟悉Java中两个著名的PrintStream实例:System.out 和 System.err。如果用过上面两个实例,那么说明你已经用过PrintStream了。
printf()
Java PrintStream类有两个强大的方法format() 和 printf()(他们实际上做的事是一样的,但是"printf"对于 C 程序员来说更熟悉一些)。这些方法可以让你非常高效的混合文本和数据、使用格式化字符。
下面是一个printf()的例子:
PrintStream printStream = new PrintStream(outputStream);
printStream.printf(Locale.UK, "Text + data: %1$", 123);
printStream.close();
更多的format() 和 printf()相关用法可以参考Java官方文档。
关闭PrintStream
写完数据的时候要记得关闭流。关闭流的同时,也会关闭OutputStream的实例。关闭流可以调用它的close()方法:
printStream.close();
你也可以使用try-with-resources结构。下面是如何使用try-with-resources结构来关闭流:
OutputStream output = new FileOutputStream("data/data.bin");
try(PrintStream printStream =
new PrintStream(output)){
printStream.writeInt(123);
printStream.writeFloat(123.45F);
printStream.writeLong(789);
}