首页 > 解决方案 > 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();
    }

}

}

标签: javabufferedreader

解决方案


通过使用该lines()方法,您基本上将缓冲的阅读器位置移动到文件的末尾。就像您已经阅读了这些行一样。

尝试使用它来遍历所有行:

while ((line = br.readLine()) != null) {  
  // Use the line variable here  
}

推荐阅读