ある時点でログ行が送信されるかどうかを確認するためのこのコードがあります。問題は、ログ行が私が望んでいた時間からのものでなくても、ファイルポインタが超過することです(「後で」時間の検索と言います)。行が最終的に取得された場合にのみ、ファイルポインターをインクリメントしたいanswer List<String>
@Override
public List<String> getForMinuteTimeFrame(LocalTime currentTime) {
List<String> lines = new ArrayList<>();
String line = null;
while ((line = randomAccessFile.readLine()) != null) {
if (fetchTime(line).isEqual(currentTime)) {
lines.add(line);
}
}
return lines;
}
どうすればこれをエレガントに行うことができますか? 入力ファイルは非常に大きい (~250 MB) ため、1 行ずつ読み取ります。