Java IO: 其他字节流(上)
轉載自? ?Java IO: 其他字節流(上)
作者:?Jakob?Jenkov?譯者:?李璟(jlee381344197@gmail.com)
本小節會簡要概括Java?IO中的PushbackInputStream,SequenceInputStream和PrintStream。其中,最常用的是PrintStream,System.out和System.err都是PrintStream類型的變量,請查看Java?IO:?System.in,?System.out,?System.err瀏覽更多關于System.out和System.err的信息。
PushbackInputStream
原文鏈接
PushbackInputStream用于解析InputStream內的數據。有時候你需要提前知道接下來將要讀取到的字節內容,才能判斷用何種方式進行數據解析。PushBackInputStream允許你這么做,你可以把讀取到的字節重新推回到InputStream中,以便再次通過read()讀取。代碼如下:
PushbackInputStream input = new PushbackInputStream(new FileInputStream("c:\\data\\input.txt")); int data = input.read(); input.unread(data);可以通過PushBackInputStream的構造函數設置推回緩沖區的大小,代碼如下:
SequenceInputStream
原文鏈接
SequenceInputStream把一個或者多個InputStream整合起來,形成一個邏輯連貫的輸入流。當讀取SequenceInputStream時,會先從第一個輸入流中讀取,完成之后再從第二個輸入流讀取,以此推類。代碼如下:
InputStream input1 = new FileInputStream("c:\\data\\file1.txt"); InputStream input2 = new FileInputStream("c:\\data\\file2.txt"); InputStream combined = new SequenceInputStream(input1, input2);通過SequenceInputStream,例子中的2個InputStream使用起來就如同只有一個InputStream一樣(譯者注:SequenceInputStream的read()方法會在讀取到當前流末尾時,關閉流,并把當前流指向邏輯鏈中的下一個流,最后返回新的當前流的read()值)。
PrintStream
原文鏈接
PrintStream允許你把格式化數據寫入到底層OutputStream中。比如,寫入格式化成文本的int,long以及其他原始數據類型到輸出流中,而非它們的字節數據。代碼如下:
譯者注:其中一個printf()函數實現如下:
public PrintStream printf(String format, Object ... args) {return format(format, args); }創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的Java IO: 其他字节流(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 意趣盎然这个成语是什么意思 意趣盎然解释
- 下一篇: 南宋皇帝列表 南宋皇帝有哪些