Reader(字符流讀取)


Reader(字符流讀取)

java.io.Reader 是一個抽象類, 只能用來操作文本文件

Reader常用實現類的繼承關系

  • java.lang.Object
    • java.io.Reader
      • java.io.InputStreamReader
        • java.io.FileReader
      • java.io.BufferedReader

常用子類就是FileReader和 BufferedReader

Reader共性方法(子類通用)

返回值 方法 說明
abstract void close() 關閉並釋放流
int read() 讀取單個字符
int read(char[] cbuf) 將字符讀入數組。
abstract int read(char[] cbuf, int off, int len) 將字符讀入數組的某一部分。
int read(CharBuffer target) 試圖將字符讀入指定的字符緩沖區。

FileReader子類

用於讀取字符流。讀取字符文件的便捷類。

構造方法

方法 說明
FileReader(File file) 傳入一個File對象
FileReader(String filePath) 傳入一個文件路徑字符串

使用實例:

try {
    // 1. 創建對象
    String path = "D:\\DEV\\eclipse\\workspace\\day13\\testIO.txt";
    Reader in = new FileReader(path);
    // 第二種創建方式
    // Reader in = new FileReader(new File(path));
    // 2. 開始讀取
    int b = 0;
    while ((b = in.read()) != -1) {
        System.out.println(b);
    }
    // 3. 釋放
    in.close();
} catch (IOException e) {
    e.printStackTrace();
}

BufferedReader子類

從字符輸入流中讀取文本,緩沖各個字符,從而實現字符、數組和行的高效讀取。可以指定緩沖區的大小,或者可使用默認的大小。

構造方法

方法 說明
BufferedReader(Reader in) 一般傳入一個FileReader對象

特有方法

返回值 方法 說明
String readLine() 讀取一行

使用實例:

FileInputStream fis = new FileInputStream("src/day08/BRDemo.java");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);

 /*
 * BufferedReader提供了按行讀取方法:
 * String readLine()
 * 連續讀取若干字符,直到讀取到換行符為止
 * 並將換行符之間讀取到的字符以一個字符串返回
 * 若返回值為NULL,則表示讀取到末尾。
 * 注意:該字符串不包含最后的換行符。
 * 
 */
String line = null;
while((line = br.readLine())!=null){
    System.out.println(line); // 一行一行讀
}
br.close();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM