Java基礎複習:字元流

來源:互聯網
上載者:User

Java中的字元是Unicode編碼,是雙位元組的,即一個字元等於兩個位元組。

字元流的好處是可以更加便捷的操作文字檔。

    (抽象流)字元輸出資料流:Writer    字元輸入資料流:Reader

 

package day20.charstream;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.io.Reader;public class Demo1 {public static void main(String[] args) {File file = new File("d:/Test/hi.txt");read(file);//讀出的資料中文亂碼}/** * 讀出指定的檔案並在螢幕列印出來,並使用自動關閉資源 * @param file */public static void read(File file){try (Reader r = new FileReader(file);){char[] buff = new char[1024];int len = 0;while((len = r.read(buff))!=-1){String data = new String(buff,0,len);System.out.println(data);}} catch(IOException e) {e.printStackTrace();}}}

位元組流和字元流的區別:

1)在使用字元流操作的時候會使用到緩衝區,而位元組流操作的時候是不會使用到緩衝區的

2)在輸出的時候,OutputStream類即使最後沒有關閉內容也可以輸出。但是如果是Writer的話,則如果不關閉,最後一條內容是無法輸出的,因為所有的內容都是儲存在了緩衝區之中,每當調用了close()方法就意味著清空緩衝區了。那麼可以證明字元流確實使用了緩衝區:
位元組流:程式 → 檔案
字元流:程式 → 緩衝區 → 檔案
3)兩者相比,肯定使用位元組流更加的方便,而且在程式中像圖片、MP3等都是採用位元組的方式的儲存,那麼肯定位元組流會比字元流使用的更廣泛。
但是需要說明的是,如果要是想操作中文的話,字元流肯定是最好使的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.