java如何逐行读取文本文件,Java逐行读取文件

  • Post author:
  • Post category:java


BufferedReader方式的关键代码

通过桥接器InputStreamReader将FileInputStream文件字节输入流转为字符流

由BufferedReader设置缓冲区并包装InputStreamReader的read()操作,调用readLine()方法逐行读取。

// 创建path文件的文件字节输入流

FileInputStream fileInputStream = new FileInputStream(path);

// 创建从字节流到字符流的桥接器

InputStreamReader isr = new InputStreamReader(fileInputStream, “UTF-8”);

// 创建一个使用指定大小输入缓冲区的缓冲字符输入流,用于包装InputStreamReader的read()操作

BufferedReader reader = new BufferedReader(isr, 5*1024*1024);

// 通过reader.readLine()逐行读取

while ((tem = reader.readLine()) != null) {

// 处理读取的数据

}

// 关闭相关流

reader.close();

isr.close();

fileInputStream.close();

FileChannel方式的关键代码

基于文件通道的nio方式,判断是否含有换行符,从而实现逐行读取数据。

可以考虑通过fileChannel.position(startIndex);将该方式扩展为多线程操作,此时暂时不再展开。

// 分配一个新的字节缓冲区。<