Java IO流體系中常用的流分類
阿新 • • 發佈:2019-02-04
Java輸入/輸出流體系中常用的流分類(表內容來自java瘋狂講義)
注:下表中帶下劃線的是抽象類,不能建立物件。粗體部分是節點流,其他就是常用的處理流。
流分類 | 使用分類 | 位元組輸入流 | 位元組輸出流 | 字元輸入流 | 字元輸出流 |
抽象基類 | InputStream | OutputStream | Reader | Writer | |
節點流 | 訪問檔案 | FileInputStream | FileOutStream | FileReader | FileWriter |
訪問數值 | ByteArrayInputStream | ByteArrayOutStream | CharArrayReader | CharArrayWriter | |
訪問管道 | PipedInputStream | PipedOutStream | PipedReader | PipedWriter | |
訪問字串 | StringReader | StringWriter | |||
處理流 | 緩衝流 | BufferedInputStream | BufferedOutputStream | BufferedReader | BufferedWriter |
轉換流 | InputStreamReader | OutputStreamWriter | |||
物件流 | ObjectInputStream | ObjectOutputStream | |||
抽象基類(過濾) | FilterInputStream | FilterOutputStream | FilterReader | FilterWriter | |
列印流 | PrintStream | PrintWriter | |||
推回輸入流 | PushbackInputStream | PushbackReader | |||
特殊流 | DataInputStream | DataOutputStream |
——————————————————————————————————————————————————————————————————
總結:
1.Java IO是採用的是裝飾模式,即採用處理流來包裝節點流的方式,來達到程式碼通用性。
2.處理流和節點流的區分方法,節點流在新建時需要一個數據源(檔案、網路)作為引數,而處理流需要一個節點流作為引數。
3.處理流的作用就是提高程式碼通用性,編寫程式碼的便捷性,提高效能。
4.節點流都是對應抽象基類的實現類,它們都實現了抽象基類的基礎讀寫方法。其中read()方法如果返回-1,代表已經讀到資料來源末尾。
轉載來自:https://www.cnblogs.com/moonpool/p/5488463.html