Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将日志文件中的一组条目写入具有特定时间范围的txt文件。(爪哇)_Java - Fatal编程技术网

Java 将日志文件中的一组条目写入具有特定时间范围的txt文件。(爪哇)

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

我有一个日志文件,我想把它写在一个有时间范围的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 [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);
    }
}

您的问题是读取日志文件、收集定义范围内的有效条目还是写入输出文本文件?你试过什么?您能告诉我们您的尝试吗?我正在向输出文本文件写入。我现在可以写一个特定的时间,但不能写一个时间范围。谢谢你的帮助。下次我试试乔达。还有一个问题。文件中的某些行似乎不是以日志时间开始的。有什么办法可以解决吗?首先,你确定这些线路是新线路吗?您的文本阅读器是否在启用“自动换行”的情况下显示?如果不是,那么我会假设一些日志描述包含换行符,甚至可能包含制表符。若您的日志文件是按时间顺序排列的,那个么您可以将这些行和其他行一起添加,当您到达有时间且超出您的范围的行时,请停止。如果您想解析或处理这些行中的信息,那就完全是另一回事了。如果是这样,请提出一个新问题。