亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為何要將字節輸入流轉換為字符輸入流?

講師在章節2-2中12:00時提到:要將字節輸入流轉為字符輸入流。

我認為上面的URL的實例應該是以實例的二進制方式存儲的吧,那為何不優先選擇字節流,尤其是獲取的元流就是字節流的情況下。

我想知道為什么?


正在回答

5 回答

讀取數據有很多種方法,各有各的特點

比如說字節流中,InputStream是最基本的,FileInputStream用來讀取文件,DataInputStream適用于讀取各種類型的數據,BufferedInputStream加緩沖可以提高IO性能

字符流中也有相應的類,InputStreamReader,FileReader,BufferedReader

其中BufferedReader有一個方法readLine(),可以一行一行讀取,這個方法其他的都沒有,使用起來比較方便

再看它的構造方法,需要傳入Reader類型的參數,那么就必須再它前面new一個InputStreamReader,所以需要把字節流轉換成字符流

果不轉換也可以,直接使用InputStream或者BufferedInputStream,一個字節一個字節讀,或定義數組一些字節一些字節一起讀,都可以,只不過沒有一行一行讀方便

具體可以看io部分的視頻

5 回復 有任何疑惑可以回復我~
#1

SoyaDokio 提問者

非常感謝!
2016-08-04 回復 有任何疑惑可以回復我~
12132


0 回復 有任何疑惑可以回復我~

感覺沒什么太大區別,字符流每次讀取一行字符和字節流帶緩沖的每次讀取指定字節都可以,不過前者可用于字符比較篩選什么的,如果只是單純的讀寫哪種都一樣我感覺

????????????InputStream?is?=?url.openStream();
????????????BufferedInputStream?in?=?new?BufferedInputStream(is);

純屬個人理解

0 回復 有任何疑惑可以回復我~

為了提高性能

0 回復 有任何疑惑可以回復我~
#1

SoyaDokio 提問者

親,請仔細看我的問題。
2016-06-28 回復 有任何疑惑可以回復我~

字符流處理的單元為2個字節的Unicode字符,分別操作字符、字符數組或字符串,而字節流處理單元為1個字節,?操作字節和字節數組。所以字符流是由Java虛擬機將字節轉化為2個字節的Unicode字符為單位的字符而成的,所以它對多國語言支持性比較好!如果是?音頻文件、圖片、歌曲,就用字節流好點,如果是關系到中文(文本)的,用字符流好點.??

所有文件的儲存是都是字節(byte)的儲存,在磁盤上保留的并不是文件的字符而是先把字符編碼成字節,再儲存這些字節到磁盤。在讀取文件(特別是文本文件)時,也是一個字節一個字節地讀取以形成字節序列.??

字節流可用于任何類型的對象,包括二進制對象,而字符流只能處理字符或者字符串;?2.?字節流提供了處理任何類型的IO操作的功能,但它不能直接處理Unicode字符,而字符流就可以。?

簡單的說,假如一個一個字節的往文件里輸入,一個文件讀寫次數太大了,很毀硬盤,但如果一個一個字符的保存,硬盤讀寫次數就會少很多,甚至可以一行一行的保存。

0 回復 有任何疑惑可以回復我~
#1

SoyaDokio 提問者

親,如果能隨便百度、Google到,我是不會提出來麻煩大家的。
2016-07-02 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為何要將字節輸入流轉換為字符輸入流?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號