怎么判断readLine读取文件结束

如题所述

如果仅仅通过判断BufferedReader的readline方法返回的是否为null,来间接判断文件读取是否到达末尾不太准确,原因是,如果在文件的末尾多打了两个回车以上(包括两个),那么程序就会报错,代码如下:

Java代码
BufferedReader reader = new BufferedReader(new FileReader((new File("D:\\media\\workspace\\song.txt"))));
String line;
while ((line = reader.readLine()) != null) {
addSong(line);
}
读取的文件如下:

Java代码
never/jack
rainbow/wm
basdf/eef
amen/sdf
[此处为回车]
[此处为回车]
..
..
通过调试发现,如果文件末尾存在两个以上的回车,那么readline()方法最后读取的是“”而不是null,解决方法是加入对空字符串的判断,代码如下:

Java代码
BufferedReader reader = new BufferedReader(new FileReader((new File("D:\\media\\workspace\\song.txt"))));
String line;
while ((line = reader.readLine()) != null && line.length() > 0) {
addSong(line);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-14
while(null != BufferReader.readLine()) { }
相似回答