我需要用Java在运行时分析日志文件。
我需要的是,能够接受一个大的文本文件,并在特定的行范围内搜索特定的字符串或正则表达式。
范围本身是通过另一次搜索推导出来的。
例如,我想要在文件中搜索字符串"operation ended with failure",而不是整个文件,只从"starting operation"行开始。
当然,我可以使用普通的InputStream和文件读取来做到这一点,但是有没有库或工具可以帮助我更方便地做到这一点呢?
发布于 2011-07-16 05:07:00
如果文件真的很大,那么在您的情况下,无论是写得好的java还是任何*nix工具解决方案都将几乎同样慢(它将绑定到IO)。在这种情况下,您将无法避免逐行阅读整个文件。在这种情况下,几行java代码就可以完成这项工作……但与一次性搜索相比,我会考虑在生成时拆分文件,这可能会更有效率。您可以将日志文件重定向到另一个程序/脚本( awk或python将非常适合它),并在生成时对文件进行在线分割,而不是事后分割。
发布于 2011-07-16 04:42:23
看看这个-- http://johannburkard.de/software/stringsearch/
希望这能有所帮助;)
https://stackoverflow.com/questions/6712884
复制相似问题