Java I/O流的總結
阿新 • • 發佈:2017-05-04
註意 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流的總結