LineNumberReader跳过文件的第一行

Err*_*ion 1 java readline

我正在使用以下代码阅读文本文件的前6行:

File finish = new File("C:/ABC Statements final/");
        File[] finf = finish.listFiles();
        String[] filenames1 = finish.list();
        LineNumberReader br = null;  
        PrintWriter bw = null;  
        for (int k = 0; k < filenames1.length; k++) {
            try {
            br = new LineNumberReader(new FileReader(new File("C:/ABC Statements final/" + filenames1[k])));  
            String line = br.readLine();  

            while (line != null && br.getLineNumber() <= 6 ) {   
                line = br.readLine();  
                System.err.println(line);
            }  


            } catch (Exception asd) {
                System.err.println(asd);
            }
Run Code Online (Sandbox Code Playgroud)

我的输出不会打印文件的第一行.谁知道我做错了什么?

Sud*_*hul 5

那是因为你吃掉了第一条线read.

String line = br.readLine();  // First line was read here.

while (line != null && br.getLineNumber() <= 6 ) {   
    line = br.readLine();  // Your first line was overriden here.
    System.err.println(line);
}
Run Code Online (Sandbox Code Playgroud)

使您的上述代码看起来像这样: -

String line = null;  
while ((line = br.readLine()) != null && br.getLineNumber() <= 6 ) {   // Line is read and checked - both together
    System.err.println(line);
}
Run Code Online (Sandbox Code Playgroud)