3

大きなファイルを1行ずつ読み取り(ファイルには1.000.000行が含まれています)、Javaで行の一部を解析する最速の方法は何ですか? たとえば、これは私のファイルの断片です

INFO  00:02:12 - returning228885634                                                              
INFO  00:02:12 - Step is 1 for 228885634 statusOK duration 0.018               
INFO  00:02:12 - Step is 2 for 228885634 statusOK duration 1.55                            
INFO  00:02:13 - START executing FOR  test32967 at Mon Sep 23 00:02:13 GMT+00:00 2013       
INFO  00:02:13 - Currently working 7

そして、このフラグメントからテストの ID (32967) を解析したいだけです!

4

5 に答える 5

1

Files.readLines()を提供できるGuava のメソッドを使用しますLineProcessor

Files.readLines(new File("a_file.ext"), Charsets.UTF_8, new LineProcessor<String>() {

    @Override
    public boolean processLine(String line) throws IOException {
        return line.contains("some identifier");
    }

    @Override
    public String getResult() { // the @tring here is the generic type of LineProcessor, change it to whatever
        //create a result, get your id or ids
        return "";
    }
});
于 2013-10-09T19:43:54.743 に答える