欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用 BufferedReader 犯的一个错

程序员文章站 2022-07-10 15:03:10
...

 

使用 BufferedReader 读取文件数据,由于数据是设备按格式生成导出的,因此需要按行读取,分割,然后取值。

 

这里,我在读取文件时,while 条件里通过 bufferedReader.read()  读取到的字节是否为 -1 进行判断,结果,每一行的第一个字节(字符)都在读取时丢失了:

// 传入 fileAddress 文件路径
BufferedReader br = new BufferedReader(new FileReader(new File(fileAddress)));
int len;// 用于记录读取到的字节,范围在 0 - 65535
while ((len = br.read()) != -1) {
    String line = br.readLine();
    // 通过正则分割处理
    ...
    // 释放资源
    br.close();
}

 由于 read() 方法已经将读到的字节取出,因此在使用 readLine() 方法时,第一个字节总是缺少。

应该如下处理:

BufferedReader br = new BufferedReader(new FileReader(new File(fileAddress)));
String line = null;
while ((line = br.readLine()) != null) {
    // 直接对 line 进行字符串处理
    ...
    // 释放资源
    br.close();
}