00091_字符輸入流Reader
阿新 • • 發佈:2017-12-24
字節流 緩沖區 發現 () char exc put span 數組
1、字符輸入流Reader
(1)字符輸入流Reader我們讀取擁有中文的文件時,使用的字節流在讀取,那麽我們讀取到的都是一個一個字節;
(2)只要把這些字節去查閱對應的編碼表,就能夠得到與之對應的字符;
(3)API中給我們已經提供了讀取相應字符的功能流對象,Reader,讀取字符流的抽象超類;
(4)read():讀取單個字符並返回;
(5)read(char[]):將數據讀取到數組中,並返回讀取的個數。
2、FileReader類
(1)查閱FileInputStream的API,發現FileInputStream 用於讀取諸如圖像數據之類的原始字節流;
(2)要讀取字符流,請考慮使用 FileReader;
(3)打開FileReader的API介紹,用來讀取字符文件的便捷類。此類的構造方法假定默認字符編碼和默認字節緩沖區大小都是適當的。
1 import java.io.FileOutputStream; 2 import java.io.FileReader; 3 import java.io.IOException; 4 5 public class CharStreamDemo { 6 public static void main(String[] args) throws IOException { 7 // 給文件中寫中文 8 writeCNText();9 // 讀取文件中的中文 10 readCNText(); 11 } 12 13 // 讀取中文 14 public static void readCNText() throws IOException { 15 FileReader fr = new FileReader("D:\\Java\\cn.txt"); 16 int ch = 0; 17 while ((ch = fr.read()) != -1) { 18 // 輸出的字符對應的編碼值 19 System.out.println(ch);20 // 輸出字符本身 21 System.out.println((char) ch); 22 } 23 } 24 25 // 寫中文 26 public static void writeCNText() throws IOException { 27 FileOutputStream fos = new FileOutputStream("D:\\Java\\cn.txt"); 28 fos.write("I Love Java,我愛你!".getBytes()); 29 fos.close(); 30 } 31 }
00091_字符輸入流Reader