要把一片二進位制資料資料逐一輸出到某個裝置中,或者從某個裝置中逐一讀取一片二進位制資料,不管輸入輸出裝置是什麼,我們要用統一的方式來完成這些操作,用一種抽象的方式進行描述,這個抽象描述方式起名為io流,對應的抽象類為outputstream和inputstream ,不同的實現類就代表不同的輸入和輸出裝置,它們都是針對位元組進行操作的。
在應用中,經常要完全是字元的一段文字輸出去或讀進來,用位元組流可以嗎?計算機中的一切最終都是二進位制的位元組形式存在。對於「中國」這些字元,首先要得到其對應的位元組,然後將位元組寫入到輸出流。讀取時,首先讀到的是位元組,可是我們要把它顯示為字元,我們需要將位元組轉換成字元。由於這樣的需求很廣泛,人家專門提供了字元流的包裝類。
底層裝置永遠只接受位元組資料,有時候要寫字串到底層裝置,需要將字串轉成位元組再進行寫入。字元流是位元組流的包裝,字元流則是直接接受字串,它內部將串轉成位元組,再寫入底層裝置,這為我們向io設別寫入或讀取字串提供了一點點方便。
字元向位元組轉換時,要注意編碼的問題,因為字串轉成位元組陣列,
其實是轉成該字元的某種編碼的位元組形式,讀取也是反之的道理。
位元組流與字元流的區別
位元組流與字元流的區別 位元組流與和字元流的使用非常相似,兩者除了操作 上的不同之外,是否還有其他的不同呢?實際上位元組流在操作時本身不會用到緩衝區 記憶體 是檔案本身直接操作的,而字元流在操作時使用了緩衝區,通過緩衝區再操作檔案,如圖 下面以兩個寫檔案的操作為主進行比較,但是在操作時位元組流和字元...
位元組流與字元流的區別
1.字元流操作的時候會使用緩衝區,而位元組流操作的時候不會使用緩衝區 2.在輸出的時候,outputstream即使不關閉也能將內容輸出,writer則不行,不關閉的話,最後一條內容不能輸出,因為所有內容都儲存在緩衝區,每當呼叫了close 方法即意味著清空了緩衝區,即可證明字元流確實使用了緩衝區的...
位元組流與字元流的區別
a fileoutputstream file name 建立乙個檔案輸出流,向指定的 file 物件輸出資料。b fileoutputstream filedescriptor 建立乙個檔案輸出流,向指定的檔案描述器輸出資料。c fileoutputstream string name 建立乙個檔...