1. 程式人生 > >Java IO流體系中常用的流分類

Java IO流體系中常用的流分類

Java輸入/輸出流體系中常用的流分類(表內容來自java瘋狂講義)

注:下表中帶下劃線的是抽象類,不能建立物件。粗體部分是節點流,其他就是常用的處理流。

流分類使用分類位元組輸入流位元組輸出流字元輸入流字元輸出流
抽象基類InputStream

OutputStream

ReaderWriter
節點流訪問檔案FileInputStreamFileOutStreamFileReaderFileWriter
訪問數值ByteArrayInputStreamByteArrayOutStreamCharArrayReaderCharArrayWriter
訪問管道PipedInputStreamPipedOutStream
PipedReaderPipedWriter
訪問字串StringReaderStringWriter
處理流緩衝流BufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter
轉換流InputStreamReaderOutputStreamWriter
物件流ObjectInputStreamObjectOutputStream
抽象基類(過濾)FilterInputStreamFilterOutputStreamFilterReaderFilterWriter
列印流PrintStreamPrintWriter
推回輸入流PushbackInputStreamPushbackReader
特殊流DataInputStreamDataOutputStream

——————————————————————————————————————————————————————————————————

總結:

1.Java IO是採用的是裝飾模式,即採用處理流來包裝節點流的方式,來達到程式碼通用性。

2.處理流和節點流的區分方法,節點流在新建時需要一個數據源(檔案、網路)作為引數,而處理流需要一個節點流作為引數。

3.處理流的作用就是提高程式碼通用性,編寫程式碼的便捷性,提高效能。

4.節點流都是對應抽象基類的實現類,它們都實現了抽象基類的基礎讀寫方法。其中read()方法如果返回-1,代表已經讀到資料來源末尾。

轉載來自:https://www.cnblogs.com/moonpool/p/5488463.html