java - BufferedReader.readLine() 将所有行返回为 null
问题描述
我有一些非常简单的代码来逐行准备txt文件的内容并将其放入String []中,但是缓冲的阅读器将所有行都返回为“null”-知道可能是什么原因吗?*我想使用缓冲阅读器而不是其他选项,因为这只是 java 培训 excersise 的一部分,主要是我想了解我犯的错误在哪里。谢谢!
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();
}
}
}
解决方案
通过使用该lines()
方法,您基本上将缓冲的阅读器位置移动到文件的末尾。就像您已经阅读了这些行一样。
尝试使用它来遍历所有行:
while ((line = br.readLine()) != null) {
// Use the line variable here
}
推荐阅读
- python - 如何遍历 csv 行以从 URLS 中提取文本
- python - 尝试获取 url 结尾时出现 Discord Py AttributeError
- sql - PostgreSQL 数据库分区没有按我的预期工作
- javascript - JavaScript 只是没有返回正确的长度
- java - apache骆驼文件从sftp下载到本地目录。我收到此错误:com.jcraft.jsch.SftpException:没有这样的文件
- reactjs - 修改 Ant Design (antd) 时间选择器页脚文本
- c# - 当我将 LINQ 方法应用于 SortedDictionary 时,Unity 冻结。会是什么呢?
- php - 结合 meta_query 和 tax_query 来获取所有未来的事件(自定义帖子)
- reactjs - 在 React 表单中设置最大和最小用户输入
- mongodb - 基于另一个集合 Mongodb 上的字段对文档进行分组