IO常用流的功能及特性:
輸入流inputStream:只能從中讀取字節數據,而不能向其寫出數據
輸出流OutputStream:只能向其寫入字節數據,而不能從中讀取數據
輸入流inputStream:
1. dataOutputStream創建一個新的數據輸出流,將數據寫入指定基礎輸出流。
2. printStream是一個字節打印流
3. bufferedOutputStream:實現緩衝。
4. FileOutputStream是用於將數據寫入 File 或 FileDescriptor 的輸出流,是用於寫入諸如圖像數據之類的原始字節的流。
5. ObjectOutputStream;用於讀取(重構)對象。
6. pipedOutputStream創建尚未連接到管道輸入流的管道輸出流。
7. byteArrayOutputStream實現了一個輸出流,其中的數據被寫入一個 byte 數組。
輸出流OutputStream:
1. pushBackInputStream爲另一個輸入流添加性能,
2. BufferedInputStream爲另一個輸入流添加一些功能
3. lineNumberInputStream是一個輸入流過濾器,它提供跟蹤當前行號的附加功能
4. FileInputStream負責從文件或另一些更特殊的地方讀入字節數據。
5. ObjectInputStream對以前使用 ObjectOutputStream 寫入的基本數據和對象進行反序列化。
7. SequenceInputStream表示其他輸入流的邏輯串聯。它從輸入流的有序集合開始,並從第一個輸入流開始讀取,直到到達文件末尾,接着從第二個輸入流讀取,依次類推,直到到達包含的最後一個輸入流的文件末尾爲止。
8. StringBufferInputStream創建一個字符串輸入流
9. ByteArrayInputStream創建一個涵內部緩衝區的流
Reader:用於讀取字符流的抽象類。子類必須實現的方法只有 read(char[], int, int) 和 close()。
1.FileReader用於處理文件的字符讀取流對象。
2.LineNumberReader使用默認輸入緩衝區的大小創建新的行編號
3.pushBackReader允許將字符推回到流的字符流 reader
4.PipedReader創建傳送的字符輸入流。
5.CharArrayReader實現一個可用作字符輸入流的字符緩衝區
6.StringReader是一個字符串的字符流
7.InputStreamReader字節到字符的橋樑,可從底層輸入流讀取一個或多個字節
8.BufferedReader創建一個緩衝字符輸入流
9.FilterReader用於讀取已過濾的字符流的抽象類,提供一些將所有請求傳遞給所包含的流的默認方法
Writer寫入字符流的抽象類。子類必須實現的方法僅有 write(char[], int, int)、flush() 和 close()。
1. FileWriter處理文件的字符寫入流對象。
2. BufferedWriter將文本寫入字符輸出流,緩衝各個字符,從而提供單個字符、數組和字符串的高效寫入。
3. CharArrayWriter實現一個可用作 Writer 的字符緩衝區
4. StringWriter一個可以用它回收在字符串緩衝區中的輸出來構造字符串的字符流。 關閉 StringWriter 無效。此類中的方法在關閉該流後仍可被調用,而不會產生任何 IOException。
5. OutputStreamWriter字符到字節的橋樑。
6. PrintWriter負責將字節“組裝”成更有用的數據類型。
7. PipedWriter傳送的字符輸出流。創建一個尚未連接到傳送 reader 的傳送 writer。
8. FilterWriter用於寫入已過濾的字符流的抽象類。
序列流,也稱爲合併流——SequenceInputStream:
特點:可以將多個讀取流合併成一個流。這樣操作起來很方便。
原理:其實就是將每一個讀取流對象存儲到一個集合中。最後一個流對象結尾作爲這個流的結尾。
作用:可以用於多個數據的合併。