`
getthrough
  • 浏览: 9387 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics