使用 BufferedReader 犯的一个错
程序员文章站
2022-07-10 15:03:58
...
使用 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(); }