我有 servlet 可以在某个时间间隔读取我的 jsp 调用 servlet 的日志文件。我想在我的 servlet 中添加功能,以便它从上次读取的最后一行的下一行读取文件。
我有以下代码,但它不起作用
File file = new File("D:\\graph\\temp.log");
FileReader fr = new FileReader(file);
LineNumberReader lnr = new LineNumberReader(fr);\
lnr.setLineNumber(count) // count is the variable keeping track of number of line
previously read.
是否需要一些额外的代码?还是有其他替代方法可以做到这一点?
最佳答案
来自 the documentation :
Note however, that setLineNumber(int) does not actually change the current position in the stream; it only changes the value that will be returned by getLineNumber().
在我看来,您必须从头开始并在循环中调用 readLine,直到 getLineNumber() 大于计数。
像这样:
File file = new File("D:\\graph\\temp.log");
FileReader fr = new FileReader(file);
LineNumberReader lineReader = new LineNumberReader(fr);
// skip the lines you don't need
while (lineReader.getLineNumber() < count) {
lineReader.readLine();
}
// begin processing input here
关于java - 通过在java中保持行跟踪来读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10763646/