1. 程式人生 > >Java I/O流的總結

Java I/O流的總結

註意 size 標記接口 ble ansi 寫入 就會 另一個 span

I/O的類結構圖

技術分享

I/O的分類

根據處理的數據類型分為:字節流和字符流。

根據數據流向分為:輸入流和輸出流。

流又可分為節點流和處理流。

節點流

直接與數據源相連

技術分享

處理流

與節點流一起使用,在節點流的基礎上,再嵌套一層。提高文件的讀取效率。

技術分享

輸入流

InputStream

作用是以字節的形式讀取數據源產生的數據。

Reader

作用是以字符的形式讀取數據源產生的數據。

輸出流

OutputStream

作用是以字節的形式在接收端寫數據。

Writer

作用是以字符的形式在接收端寫數據。

常用的流

緩沖流

作用:緩沖流提供緩沖區,先把數據寫入緩沖區,當緩沖區寫滿之後,再把緩沖區的內容寫到文件中去。這樣會提高讀取效率。

對象流

作用:用於寫入/讀取對象的信息,使對象持久化。

使用的註意事項:

1.如果想將一個對象寫入到磁盤中,那麽對象所屬的類必須要進行序列化,實現Serializable 接口,Serializable接口沒有任何方法 ,是一個標記接口
2.如果對象所屬的類的成員變量發生改變,你在讀取原來的對象是就會報錯,如果想要解決報錯,保證serialVersionUID是唯一。
3.如果你不想將某些信息存入到磁盤 就可以同過transient關鍵字修飾成員變量
4.如果一個類中引用了另外的一個類,那麽另外的這個類也要實現Serializable接口。

管道流

作用:可以進行兩個線程之間的通信。一個線程作為管道輸出流,另一個作為管道輸入流。

轉換流

作用:用於字節流和字符流的轉化。

InputStreamReader:將字節流轉換為字符流

OutputStreamWriter:將字符流轉換為字節流

Java I/O流的總結