📜  Java IO-BufferedReader类(1)

📅  最后修改于: 2023-12-03 15:01:30.593000             🧑  作者: Mango

Java IO-BufferedReader类

简介

BufferedReader类是Java IO中的一个类,用于将输入的字符流缓冲,以便一次读取多个字符,从而增加文件或网络的读取效率。

特点
  • 继承了Reader类,可以读取字符流
  • 具有缓冲功能,可以提高读取效率
  • 可以通过readLine()方法按行读取文本
实例化
try {
    FileReader fileReader = new FileReader("file.txt");
    BufferedReader bufferedReader = new BufferedReader(fileReader);
    String line;
    while ((line = bufferedReader.readLine()) != null) {
        //按照行读取文本
        System.out.println(line);
    }
    bufferedReader.close();
} catch (IOException e) {
    e.printStackTrace();
}
方法
  • BufferedReader(Reader in):构造一个新的缓冲字符输入流。
  • int read():读取单个字符。
  • int read(char[] cbuf, int off, int len):将字符读入数组中的某一部分。
  • String readLine():读取一个文本行。
  • boolean markSupported():告诉此流是否支持 mark() 操作。
  • void mark(int readAheadLimit):标记流中的当前位置。
  • void reset():将流的位置重置为最近标记的位置。
  • long skip(long n):跳过字符。
使用场景

BufferedReader类适用于需要读取大量文本的场景,比如读取文本日志文件,读取网络传输的文本等。

实战

读取txt文本中的内容:

try {
    FileReader fileReader = new FileReader("file.txt");
    BufferedReader bufferedReader = new BufferedReader(fileReader);
    String line;
    while ((line = bufferedReader.readLine()) != null) {
        //按照行读取文本
        System.out.println(line);
    }
    bufferedReader.close();
} catch (IOException e) {
    e.printStackTrace();
}

按字符读取文本日志文件:

try {
    FileReader fileReader = new FileReader("file.log");
    BufferedReader bufferedReader = new BufferedReader(fileReader);
    char[] cbuf = new char[1024];
    int len;
    while ((len = bufferedReader.read(cbuf)) > 0) {
        //按字符读取文本日志文件
        System.out.println(new String(cbuf, 0, len));
    }
    bufferedReader.close();
} catch (IOException e) {
    e.printStackTrace();
}
总结

BufferedReader类是一种有效的处理字符流的方式,它可以提高读取效率,同时也支持按行读取文本,适用于读取大量文本的场景。