我有一些非常简单的代码来准备txt文件的内容,逐行并将其放入字符串[],但是缓冲读取器将所有行返回为“null”-知道原因是什么吗*我想使用缓冲读取器,而不是其他选项,因为这只是java培训练习的一部分,我主要想了解我犯的错误在哪里。谢谢!
public static void readFile (String path){
File file = new File(path);
try {
BufferedReader br = new BufferedReader(new FileReader(file));
int lineCount = (int) br.lines().count();
String[] passwords = new String[lineCount];
for (int i=0; i<lineCount; i++){
passwords[i] = br.readLine();;
System.out.println(passwords[i]);
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2条答案
按热度按时间6fe3ivhb1#
通过使用
lines()
方法基本上将缓冲读取器位置移动到文件的末尾。好像你已经读过这些台词了。尝试使用此命令遍历所有行:
3ks5zfa02#
使用
br.lines()
或者br.readLine()
消耗输入,但不能同时消耗两者。此版本仅使用stream to string[]执行相同的操作,并关闭try with resources块中的输入: