想要查看此教程的目錄請點擊:Java IO教程目錄貼地址
Java的PrintStream類(java.io.PrintStream)可以讓你將格式化數(shù)據(jù)寫入到OutputStream底層。可以格式化Java基本數(shù)據(jù)類型,比如int,long等。格式化成文本而不是成字節(jié)。這就是為什么稱為PrintStream。
PrintStream例子
下面是一個關(guān)于PrintStream的例子:
PrintStream printStream = new PrintStream(outputStream);
printStream.print(true);
printStream.print((int) 123);
printStream.print((float) 123.456);
printStream.close();
首先創(chuàng)建一個PrintStream實例并在構(gòu)造方法中傳入OutputStream。然后打印了三個Java基本類型的數(shù)據(jù)。最后關(guān)閉流。
為了簡便起見,在示例中省略了PrintStream所寫的輸出流的實例。PrintStream有很多構(gòu)造方法,可以以File作為參數(shù),也可以是OutputStream等。
System.out和System.err都是PrintStream
你可能熟悉Java中兩個著名的PrintStream實例:System.out 和 System.err。如果用過上面兩個實例,那么說明你已經(jīng)用過PrintStream了。
printf()
Java PrintStream類有兩個強(qiáng)大的方法format() 和 printf()(他們實際上做的事是一樣的,但是"printf"對于 C 程序員來說更熟悉一些)。這些方法可以讓你非常高效的混合文本和數(shù)據(jù)、使用格式化字符。
下面是一個printf()的例子:
PrintStream printStream = new PrintStream(outputStream);
printStream.printf(Locale.UK, "Text + data: %1$", 123);
printStream.close();
更多的format() 和 printf()相關(guān)用法可以參考Java官方文檔。
關(guān)閉PrintStream
寫完數(shù)據(jù)的時候要記得關(guān)閉流。關(guān)閉流的同時,也會關(guān)閉OutputStream的實例。關(guān)閉流可以調(diào)用它的close()方法:
printStream.close();
你也可以使用try-with-resources結(jié)構(gòu)。下面是如何使用try-with-resources結(jié)構(gòu)來關(guān)閉流:
OutputStream output = new FileOutputStream("data/data.bin");
try(PrintStream printStream =
new PrintStream(output)){
printStream.writeInt(123);
printStream.writeFloat(123.45F);
printStream.writeLong(789);
}