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