IO體系與亂碼

2021-07-31 11:32:53 字數 942 閱讀 7863

按資料處理型別分 :位元組流,字元流

按資料流向分 :輸入流,輸出流

共同點:都是抽象類,必須依賴子類去實現;

1.inputstream,位元組輸入流(byte);

2.outputstream,位元組輸出流(byte);

字元流:使用位元組流讀到乙個或多個位元組(中文,流預設是gbk編碼,是倆位,檔案預設是utf-8編碼,是3位)–>>這就是亂碼的原因.先去查指定的編碼表,查到後返回該字元;

3.reader,字元輸入流,子類必須實現的方法write(),flush(),close();

4.writer,字元輸出流,子類必須實現的方法read(),close();

必須關流,close(),如果不關流,東西只會寫入快取區,而不會寫入磁碟,導致程式執行後,檔案裡沒有任何內容(不信賭個棒棒糖:-d);

1.字元流才亂碼;

2.位元組流操作:讀到乙個位元組返回乙個位元組,所以不會亂碼;

3.字元流操作:使用位元組流讀到乙個或多個位元組(中文,流預設是gbk編碼,是倆位,檔案預設是utf-8編碼,是3位)–>>這就是亂碼的原因.先去查指定的編碼表,查到後返回該字元;

4.解決方案:指定編碼解碼過程使用的碼表,預設是gbk,只有下面倆個可以指定編碼,其他都選用預設編碼gbk;

inputstreamwriter(inputstream,string charset); 

outputstreamwriter(outputstream,string charset);

IO繼承體系

io繼承體系 reader bufferedreader reader in 輸入緩衝流 linenumberreader reader in getlinenumber setlinenumber inputstreamreader inputstream in,string charsetnam...

I O體系結構

size small 流相當於一條管道,用來傳輸資料 用形象的思維來分析流這個概念,水管 水滴 小桶 在流中我們以當前的程式執行所在的記憶體角度來劃分輸入 輸出 按照流中傳輸的資料單元可以分為位元組流 字元流 位元組流可以認為水管中每一滴水就是乙個位元組,而在字元流中每一滴水是乙個字元 兩個位元組 ...

io體系及各種流詳解

基於位元組的操作 基於字元的操作 檔案流 位元組陣列流 管道流 緩衝流 資料流 壓縮流 摘要流 加密流 多重流 fileinputstream fileoutputstream 需要逐個位元組處理原始二進位製流的時候使用,效率低下 filereader filewriter 需要組個字元處理的時候使...