我使用 LineNumberReader 读取文本文件,当调用 setLineNumber 和 getLinenumber 时它打印 == 0 但是当再次调用 readLine 时 ์Nit 事情发生了我该如何修复它 这是我的代码
BufferedWriter writer = new BufferedWriter(new FileWriter("text.txt"));
writer.write("This is a line1\n" +
"This is a line2\n" +
"This is a line3");
writer.newLine();
writer.close();
File myFile = new File("text.txt");
FileReader fileReader = new FileReader(myFile);
LineNumberReader reader = new LineNumberReader(fileReader);
// Read from the FileReader.
String lineRead = "";
while ((lineRead = reader.readLine()) != null) {
System.out.println(lineRead);
}
// Determine the number of lines that were read.
System.out.println("Total lines read: " +
reader.getLineNumber());
// Reset the number of lines read.
reader.setLineNumber(0);
System.out.println("Total lines read after reset: " +
reader.getLineNumber());
String lineRead2 = "";
while ((lineRead2 = reader.readLine()) != null) {
System.out.println(lineRead2);
}
System.out.println("End");
// Close the LineNumberReader and FileReader.
fileReader.close();
reader.close();
感谢
最佳答案
您只是设置了 LineNumberReader
的行号计数器,而不是底层流中的位置。请参阅 Java's LineNumberReader class 的文档.
您已经处理了您的流,因此对 readLine()
的后续调用返回 null。
如果你想重新读取流,你将不得不调用 fileReader.reset()
或 reader.reset()
,这将导致您的 LineNumberReader
为您的 FileReader
调用重置。
关于java - LineNumberReader setLineNumber 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11114429/