java-分析大文本文件
我需要在运行时用Java分析日志文件 我需要的是,能够获取一个大的文本文件,并在特定的行范围内搜索特定的字符串或正则表达式 范围本身是通过另一次搜索推断出来的 例如,我想搜索文件中的字符串java-分析大文本文件,java,text,Java,Text,我需要在运行时用Java分析日志文件 我需要的是,能够获取一个大的文本文件,并在特定的行范围内搜索特定的字符串或正则表达式 范围本身是通过另一次搜索推断出来的 例如,我想搜索文件中的字符串“操作因失败而结束”,但不搜索整个文件,只从写着“开始操作”的行开始 当然,我可以通过普通的InputStream和文件读取来实现这一点,但是有没有一个库或工具可以更方便地实现这一点 看看这个- 希望有帮助;) 如果文件非常大,那么在您的情况下,无论是编写良好的java还是任何*nix工具解决方案都几乎同样慢(
“操作因失败而结束”
,但不搜索整个文件,只从写着“开始操作”
的行开始
当然,我可以通过普通的InputStream
和文件读取来实现这一点,但是有没有一个库或工具可以更方便地实现这一点 看看这个-
希望有帮助;) 如果文件非常大,那么在您的情况下,无论是编写良好的java还是任何*nix工具解决方案都几乎同样慢(它将绑定到IO)。在这种情况下,您将无法避免逐行读取整个文件。。。。在这种情况下,只有几行java代码可以完成这项工作。。。但是,与一次性搜索相比,我会考虑在生成时分割文件,这可能会更有效。您可以将日志文件重定向到另一个程序/脚本(awk或python都适合),并在线/在生成时而不是事后拆分文件。方便-听起来像是延迟加载:-它必须是java吗?我的意思是,grep(一个*nix标准实用程序)正是为您这样做的。。。不过,它是一个命令行工具。或者使用Splunk-你不能像他们那样使用模式类吗?我正在寻找一个java解决方案。不过,对于las resort,我将使用命令行util。有什么好消息吗?你能解释一下这个用法吗?