---------------------- asp.net+android+io開發s、.net培訓、期待與您交流! ----------------------
流的本質是資料傳輸,根據資料傳輸特性將流抽象為各種累,方便更直觀的進行資料操作
io流的分類
根據處理資料型別的不同分為:字元流和位元組流
根據資料流向不同分為:輸入流和輸出流
字元流和位元組流
字元流的由來: 因為資料編碼的不同,而有了對字元進行高效操作的流物件。本質其實就是基於位元組流讀取時,去查了指定的碼表。 位元組流和字元流的區別:
讀寫單位不同:位元組流以位元組(8bit)為單位,字元流以字元為單位,根據碼表對映字元,一次可能讀多個位元組。
結論:只要是處理純文字資料,就優先考慮使用字元流。 除此之外都使用位元組流。
io流常用基類:
1,位元組流的抽象基類
inputstream outputstream
2, 字元流的抽象基類
reader writer
注:由這四個類派生出來的子類名稱都是以基類父類名作為子類名的字尾
如:inputstream 的子類filetnputstream
reader的子類 filereader
字元流:
io異常處理方式
filewriter fw =null;
trycatch(ioexception e)
finally
catch (ioeception e)
}字元流的緩衝區:
作用:提高了對資料的讀寫效率
在建立緩衝區前必須先有流物件
對應類:
bufferedwriter
bufferedreader
bufferedwriter burw = new bufferedwriter(fw);
bufw.close();
//其實關閉緩衝區,就是關閉緩衝區中的流物件
所以不用fw.close();
該緩衝區提供了換行fangfa
newline(); 呼叫一次,換行一次
bufferereader
該緩衝區提供了乙個一次讀一行的方法 readline
方便於對文字資料的獲取
當返回null時,表示讀到末尾
readline 方法返回的時候只返回回車符之前的資料內容,並不返回回車符,要呼叫newline();
裝飾類通常會通過構造方法接受唄裝飾的物件 並基於被裝飾的物件的功能,提供更強的功能。比如 buffereread 就是fileread的裝飾類
裝飾體系比繼承更靈活,降低了類與類之間的關係。
字串變陣列
"abc".getbytes();
複製思路:
1,用位元組流物件關聯
2,用位元組寫入劉物件建立乙個檔案,用於儲存獲取到的資料
3,通過迴圈讀寫,完成資料儲存
4,關閉資源。
最後總結下流操作的基本規律:
通過兩個明確來完成
1,明確源和目的
源:輸入流 inputstream reader
目的:輸出流 outputstream writer
2,操作的是否為純文字
是:字元流
不是:位元組流
3,當體系明確後,再明確要使用具體的哪個物件,通過裝置進行區分
源裝置:記憶體,硬碟,鍵盤
目的裝置:記憶體,硬碟,控制台
然後:需要提高效率嗎?
是:bufferdreader
如果儲存時,需要加入指定編碼表,則用轉換劉
所以需使用的物件是outputstreamwriter
而該轉換流物件需要接收乙個位元組輸出流
而且還可以操作的檔案的位元組輸出流,fileoutputstream
轉換流什麼時候使用呢
字元與位元組的之間的橋梁,通常涉及到字元編碼轉換時,需要用到轉換流。
---------------------- asp.net+android+ios開發、.net培訓、期待與您交流! ----------------------
黑馬程式設計師 IO流
asp.net unity開發 net培訓 期待與您交流!io流可以按流向分為輸入流,輸出流。按讀取資料的型別可分為位元組流和字元流。字元流 輸出字元流 writer 字元寫入流的抽象 filewriter 字元寫入流 bufferedwriter 字元寫入流緩衝區 outputstreamwrit...
黑馬程式設計師 IO流學習筆記
流按運算元據分 位元組流,字元流 按流向分為 輸入流輸出流 英文編碼表 asicci碼 漢子編碼表 gb2312,擴容後gbk 國際標準碼表 unicode,優化後變為utf 8 字元流讀取的時候用什麼碼表可以有我們自己指定,這樣處理文字就變得很方便 所以處理文字用字元流方便,處理用位元組流方便,通...
黑馬程式設計師 16 IO流
asp.net android ios開發 net培訓 期待與您交流!io流中的運算元據分為位元組流和字元流 早期都是以位元組流的形式操作的,位元組流處理單元是乙個位元組,操作 byte 或byte 可以操作任何形式的資料 字元流 由於對於文字資料,有不同的碼表編碼格式,字元流採用預設編碼表,處理單...