JAVA面經-基礎篇-IO流
阿新 • • 發佈:2022-06-06
1、介紹下Java中的IO流
IO(Input Output)用於實現對資料的輸入和輸出操作,Java把不同的輸入/輸出源(鍵盤、檔案、網路等)抽象表述為流(Stream)。流是從起源到接收的有序資料,有了它就可以用同一種方式訪問不同的輸入/輸出源。
分類:
1)按照資料流向:分為輸入流和輸出流。輸入流只讀不寫,輸出流只寫不讀。
2)按照資料型別:分為位元組流和字元流。位元組流操作8位的位元組,字元流操作16位的字元。
3)按照處理功能:分為節點流和處理流。節點流可以從/向一個特定的IO裝置輸入/輸出資料,也稱低階流;處理流是對節點流的連線或封裝,簡化資料讀寫功能提高效能,也稱高階流。
常用類:
Java提供了大量的類來支援IO操作,下表給大家整理了其中比較常用的一些類。其中,黑色字型的是抽象基類,其他所有的類都繼承自它們。紅色字型的是節點流,藍色字型的是處理流。
根據命名很容易理解各個流的作用:
- 以File開頭的檔案流用於訪問檔案;
- 以ByteArray/CharArray開頭的流用於訪問記憶體中的陣列;
- 以Piped開頭的管道流用於訪問管道,實現程序之間的通訊;
- 以String開頭的流用於訪問記憶體中的字串;
- 以Buffered開頭的緩衝流,用於在讀寫資料時對資料進行快取,以減少IO次數;
- InputStreamReader、InputStreamWriter是轉換流,用於將位元組流轉換為字元流;
- 以Object開頭的流是物件流,用於實現物件的序列化;
- 以Print開頭的流是列印流,用於簡化列印操作;
- 以Pushback開頭的流是推回輸入流,用於將已讀入的資料推回到緩衝區,從而實現再次讀取;
- 以Data開頭的流是特殊流,用於讀寫Java基本型別的資料。