31. Java IO: PrintStream

想要查看此教程的目录请点击: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);
}

你可能感兴趣的:(31. Java IO: PrintStream)