1. 程式人生 > >輸入輸出流(一)InputStream和OutputStream

輸入輸出流(一)InputStream和OutputStream

用戶 sha show append tput 二進制 open 所有 擴展

1、輸入/輸出流以處理字節字符分類形成兩個單獨的層次結構:

(1)InputStreamOutputStream類可以讀寫單個字節或字節數組。

(2)ReaderWriter類可以讀寫基於兩字節的Char值,即Unicode文本。

2、還有4個附加的接口:CloseableFlushableReadableAppendable。InputStream、OutputStream、Reader和Writer都實現了Closeable接口,OutputStream和Writer還實現了Flushable接口,只有Writer實現了Appendable接口。

3、字節流下面常用輸入輸出流有:

(1)FileInputStreamFileOutputStream提供一個磁盤文件上的輸入輸出流,只需向其構造器提供文件名(相對路徑,用戶工作目錄開始,System.getProperty("user.dir")可以獲取,文件分隔符可以使用java.io.File.separator)或完整路徑名。

(2)FilterInputStreamFilterOutputStream類下面的子類可以擴展字節流的功能,比如DataInputStreamDataOutputStream可以以二進制格式讀寫所有的基本Java類型,BufferedInputStreamBufferedOutputStream

可以創建帶緩沖區的輸入輸出流,以及提供預覽機制的PushbackInputStream等。

(3)Java通過對各種流進行組合來實現不同的功能,比如下代碼:

技術分享圖片
DataInputStream din = new DataInputStream(
    new BufferedInputStream(
        new FileInputStram("xxx.dat")));
組裝IO流過濾器

輸入輸出流(一)InputStream和OutputStream