java——IO流整理(一)
生活随笔
收集整理的這篇文章主要介紹了
java——IO流整理(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、基礎
1.字節、字符
- 位(bit) :二進制中的一個1或0稱為1位
- 字節(byte) :8個二進制位稱為一個字節
- 字符 ? :一個自然符號稱為字符。英文符號(1個字節)、中文符號(2個字節)
2.編碼格式
- ASCII ????? :有256字符組成,內部包含了對英文、符號及數字的定義
- GB2312??????? :擴展后的中文字符集。內部包含了2萬多個中文字符
- ISO-8859-1?? : 歐美字符集
- Unicode??????? :包含了所有字符的字符集。內容有雙字節組成
- Utf-8??????????? : 包含了大部分字符的字符集。實際使用中應用比較廣泛的字符集
二、IO
1.概述
IO是Input Output的縮寫,表示輸入與輸出。IO按照不同的方式可以包含如下分類
文件在讀取或傳輸過程中連續的內容就稱為流。
2. 內容讀取方式
字節流方式和字符流方式
3. 按照方向劃分
輸入流(從源到程序稱為輸入流)和輸出流(從程序到目標源稱為輸出流)
2. 字節流方式處理
1.輸入流
- FileInputStream ? ? ? ??? :按照字節流方式對內容進行讀取(不適用緩存)
- BufferedInputStream?? :按照字節方式對內容進行讀取(使用了緩存)
- DataInputStream???????? :按照類型對內容進行讀取
- ObjectInputStream????? :按照對象的類型進行數據的讀取(反序列化過程中必須使用)
- ByteArrayInputStream? : 提供一個byte型的輸入緩沖區
2.輸出流
- FileOutputStream ??? :對內容進行輸出(未使用緩沖區)
- BufferedOutputStream? :使用緩沖區對內容進行輸出
- DataOutputStream ? :對內容按照類型進行存儲
- ObjectOutputStream???? :對對象進行存儲(序列化過程必須使用)
- PrintStream????????????????? :功能與OutputStream相似,但是提供了更加豐富的輸出方式
- ByteArrayOutputStream :對輸出內容提供一個緩沖區
3. 字節流方式處理
1. 輸入流
- FileReader
- BufferReader
- CharArrayReader
- StringReader
2. 輸出流
- FileWriter
- BufferWriter
- CharArrayWriter
- StringWriter
- PrintWriter
3.常見方法
- Read() :讀取內容
- Write() :向媒體中寫入內容
- Flush() :刷新緩沖區,強制將內容寫入到文件中
- Close() :關閉當前對象
三、?序列化與反序列化
1.持久化存儲
將對象的內容進行長期的保存(對象內容時存儲在內存中的,隨著程序的關閉對象的信息也會丟失)。通過將對象的內容寫入到文件中以實現文件內容的持久化保存
2.序列化及反序列化
2.1.?概念
- 序列化
將對象存儲到文件的過程就成為序列化。
- 反序列化
將文件中的內容轉換為對象的過程就成為反序列化
2.2.?要求
- 只有實現了Serializable接口的類才具有可序列化的能力
- 如果類中使用了其他的類,則該類也必須實現Serializable接口
- Static的內容是不會被序列化的(因為static成員是屬于類的)
- 如果對象中的某個屬性不需要被序列化可以是transient進行修飾
- 屬性的訪問修飾符是無法被序列化的
- 不同版本的序列化文件無法兼容
2.3.?實現步驟
1)?自定義類并實現Serializable接口
2)?創建ObjectOutput(Input)Stream對象
3)?通過對象進行讀取或寫入
4)?關閉流對象
2.4.?優點
以二進制形式存在,所以具有與平臺無關性的特點(可以在各種平臺上使用)。
2.5.?應用
- 網絡中對象數據的傳輸(Socket通信)
- 對象的持久化保存
?
轉載于:https://www.cnblogs.com/rsdqc/p/5388631.html
總結
以上是生活随笔為你收集整理的java——IO流整理(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TCP中间件_个人方案
- 下一篇: Java太阳系行星运动模型