PrintStream 類可以將格式化數據寫入底層 OutputStream 或者直接寫入 File 對象。 PrintStream 類可以格式化基本類型,如int,long等格式化為文本,而不是其字節值。 這就是為什么它被稱為 PrintStream ,因為它將原始字節格式化為文本 - 就像它們在打印到屏幕(或打印到紙張)時看起來一樣。
構造器
方法 | 描述 |
---|---|
PrintStream(File file) | 創建具有指定文件且不帶自動行刷新的新打印流。 |
PrintStream(File file, String csn) | 創建具有指定文件名稱和 csn 字符集且不帶自動行刷新的新打印流。 |
PrintStream(String fileName) | 創建具有指定文件名稱且不帶自動行刷新的新打印流。 |
PrintStream(String fileName, String csn) | 創建指定名稱和字符集且不帶自動行刷新的打印流 |
PrintStream(OutputStream out) | 創建新的打印流。out - 將向其打印值和對象的輸出流 |
PrintStream(OutputStream out, boolean autoFlush) | autoFlush - boolean 變量;如果為 true,則每當寫入 byte 數組、調用其中一個 println 方法或寫入換行符或字節 ( '\n') 時都會刷新輸出緩沖區 |
PrintStream(OutputStream out, boolean autoFlush, String encoding) | 同上,同時指定字符集 |
常見方法
方法 | 描述 |
---|---|
void print(Xxx x) | 可以打印指定類型的數據 |
PrintStream append(char c) | 將指定字符添加到此輸出流。 |
PrintStream append(CharSequence csq, int start, int end) | 添加指定字符序列,后兩個參數可選 |
PrintStream format(String format, Object... args) | 使用指定格式字符串和參數將格式化字符串寫入此輸出流中。 |
println(Xxx x) | 打印完,然后換行。 |
void write(int b) | 將指定的字節寫入此流。 |
PrintStream 方便的提供了重載的 print() 方法。
看一個例子:
PrintStream printStream = new PrintStream(new FileOutputStream("D:\\test\\1.txt"));
printStream.print(true);
printStream.print(" print ");
printStream.print((int)123);
printStream.print('&');
printStream.print((float) 123.456);
printStream.close();
輸出結果為 true print 123&123.456
System.out 和 System.err 就是 PrintStreams
我們很熟悉這兩個眾所周知的 PrintStream 實例:System.out 和 System.err,所以我們早就在使用 PrintStream 了。
PrintStream 類包含強大的 format() 和 printf() 方法(它們完全相同,但 C 程序員更熟悉名稱“printf”)。 這些方法允許使用格式化字符串以非常高級的方式混合文本和數據。如 System.out.format("Text + data: %d", 123);
其他高級用法可以查 JavaDoc 。
close()
用完要關閉,關閉 PrintStream 系統會同時關閉對應的包裝流,如上例,不需要單獨關閉 FileOutputStream 。建議使用 try-with-resources 。