我有一个类,它逐行读取日志文件,我想从文件中的特定点开始直到文件结束。例如,从时间戳'2018-11-23 09:00'开始读取到文件末尾。我已经检查了与读取文件有关的BufferedReader问题,但没有答案有帮助。
BufferedReader reader = new BufferedReader(new FileReader(path));
while ((line = reader.readLine()) != null) {
if(!line.isEmpty()){//I would like to start reading from a specific timestamp to the end of the file
if(line.toLowerCase().contains(keyword)){
if(line.length() > 16) {
if (line.substring(0, 1).matches("\\d")){
dateTimeSet.add(line.substring(0, 16));//Adds timestamp to my list
errorSet.add(line);
}
}
}
}
}
答案 0 :(得分:0)
由于您要查找文件中出现的特殊字符串,因此需要检查每一行,直到找到它为止。
添加局部变量以跟踪您是否应该处理该行或跳过该行
boolean isReading = false;
然后代替您的isEmpty
检查做
if (!isReading) {
isReading = line.startsWith(timestamp);
}
if (!isReading) {
continue;
}
//otherwise process line
如果不能总是匹配时间戳,最好使用matches()
和正则表达式代替startsWith()