Java 将日志文件中的一组条目写入具有特定时间范围的txt文件。(爪哇)
我有一个日志文件,我想把它写在一个有时间范围的txt文件中。JAVA 例如,日志文件如下所示:Java 将日志文件中的一组条目写入具有特定时间范围的txt文件。(爪哇),java,Java,我有一个日志文件,我想把它写在一个有时间范围的txt文件中。JAVA 例如,日志文件如下所示: 2014-04-11 00:00:02.134 [DEBUG] [SNGW-Deliv] [] asdf 2014-04-11 00:01:02.135 [DEBUG] [SNGW-Deliv] [] qqqq 2014-04-11 00:02:02.198 [DEBUG] [SNGW-Deliv] [] ffff 2014-04-11 00:03:02.198 [DE
2014-04-11 00:00:02.134 [DEBUG] [SNGW-Deliv] [] asdf
2014-04-11 00:01:02.135 [DEBUG] [SNGW-Deliv] [] qqqq
2014-04-11 00:02:02.198 [DEBUG] [SNGW-Deliv] [] ffff
2014-04-11 00:03:02.198 [DEBUG] [SNGW-Deliv] [] gggg
2014-04-11 00:06:02.198 [DEBUG] [SNGW-Deliv] [] nnnn
2014-04-11 00:06:02.198 [DEBUG] [SNGW-Deliv] [] rrrr
2014-04-11 00:08:02.198 [DEBUG] [SNGW-Deliv] [] mmmm
2014-04-11 00:09:02.198 [DEBUG] [SNGW-Deliv] [] kkkk
我想将2014-04-11 00:02:02.198到2014-04-11 00:08:02.198的日志条目写入.txt文件。有人可以帮我解决这个问题吗?您可以查看外部库,如DateTimeFormatter和Period类,或者尝试使用Java来读取和解析输入日志文件日期 下面是一些伪代码,但对您来说最重要的行SimpleDataFormat和parse应该适合您的情况
SimpleDateFormat rawDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
DateTime logTime;
for (String logfileLine : logfileLines) {
logTime = rawDateFormat.parse(stringDateFromLine);
if (logTime > myPeriodStart && logTime < myPeriodEnd) {
writeToOutputFile(logfileLine);
}
}
您的问题是读取日志文件、收集定义范围内的有效条目还是写入输出文本文件?你试过什么?您能告诉我们您的尝试吗?我正在向输出文本文件写入。我现在可以写一个特定的时间,但不能写一个时间范围。谢谢你的帮助。下次我试试乔达。还有一个问题。文件中的某些行似乎不是以日志时间开始的。有什么办法可以解决吗?首先,你确定这些线路是新线路吗?您的文本阅读器是否在启用“自动换行”的情况下显示?如果不是,那么我会假设一些日志描述包含换行符,甚至可能包含制表符。若您的日志文件是按时间顺序排列的,那个么您可以将这些行和其他行一起添加,当您到达有时间且超出您的范围的行时,请停止。如果您想解析或处理这些行中的信息,那就完全是另一回事了。如果是这样,请提出一个新问题。