java - 通过在java中保持行跟踪来读取文件

标签 java jsp servlets

我有 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/

相关文章:

java - jOOQ 在更新时添加到当前值

java - 如何为数据集描述创建 spock 风格的 DSL?

java - 如何 "fix"损坏的 Java 字符串(字符集转换)

java - 将日期对象存储在sqlite数据库中

Java正则表达式提取方括号或圆括号内的内容

java - J2EE : how to get in servlet an arraylist, 在 JSP 的隐藏字段中传递?

java - 无法使用 JSP/DAO/Servlet 更新表

java - 使用JSP注释时编译错误?

java - 如何使用 JSTL 在 .jsp 页面中调用 java 方法

java - 从 Android 访问 servlet 时维护 HTTP session