使用 BufferedReader 犯的一个错

使用 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();
}

猜你喜欢

转载自getthrough.iteye.com/blog/2418761
今日推荐