我正在使用以下代码阅读文本文件的前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)
我的输出不会打印文件的第一行.谁知道我做错了什么?
那是因为你吃掉了第一条线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)