標籤:
源:
鍵盤 System.in 硬碟 FileStream 記憶體 ArrayStream
目的:
控制台 System.out 硬碟 FileStream 記憶體 ArrayStream
處理大檔案或者多線程下載\上傳
RandomAccessFile 或者記憶體對應檔
方便對對象的永久化儲存和調用
ObjectStream
方便操作列印流
PrintWriter 和 PrintStream
序列流,對多個流進行合并
SequenceInpuntStream
管道流,輸入和輸出可以直接連接,通過結合線程使用
PipedInputStream PipedOutputStream
方便操作基礎資料型別 (Elementary Data Type)
DataInputStream DataOutputStream
方便操作位元組數組
ByteArrayInputStream ByteArrayOutputStream
方便操作字元數組
CharArrayReader CharArrayWriter
方便操作字串
StringReader StringWriter
字元編碼:
字元流的出現為了方便操作字元,更重要的是加入了字元轉換.
字元轉換通過轉換流來完成
InputStreamReader
OutputStreamWriter
在兩個對象進行構造時可加入字元集
編碼;
字串變成位元組數組
String --> byte[] str.getBytes()(按照平台預設的字元集) str.getBytes(String charsetName)(按照指定字元集編碼)
解碼:
位元組數組變字串
byte[] --> String new String(byte[]) new String(byte[], charsetName)(按照指定的字元編碼)
常見的字元集:
ASCII:美國標準資訊交換碼
用一個位元組的7位就可以表示
IOS8859-1:拉丁碼錶\歐洲碼錶
用一個位元組的8位表示
GB2312:中國的中文編碼錶
GBK:中文編碼錶升級,融合了更多的中文字元
Unicode:國際標準編碼,融合了多種文字
所有字元都用兩個位元組表示,java語言就是用的unicode
UTF-8:用3個位元組來表示一個漢字
Java: IO 學習小結