かなり簡単な質問大きなファイルがあるとします。私の目的は、200行ごとに読み込んで、別のスレッドで処理することです。ファイルはかなり長いので、最後のスレッドは正確に200行を取得しません。Javaまたはスカラを使用して大きなファイルの最後のチャンクを処理する方法
私は約何かを考えた:PORPOSE
String[] chunk = new String[200];
int count = 0;
String line = null;
while ((line = bufferedReader.readLine()) != null) {
chunk[count % chunk.length] = line;
count++;
if (count % chunk.length == 0) {
exec.execute(new Runnable() {
@Override
public void run() {
// TODO process what ever
}
});
}
}
(....しかし、残りの最後のチャンクを解決する方法を取得していない):考慮して別のスレッド上のラインの各チャンクを処理するため コードを記述最後のチャンクの、最高のパフォーマンス/最適化を実現しました。
PS - 最初にファイル全体カントー読み込み、メモリに格納するではないが、チャンク...私は反復中にそれを行うと思います...
質問のスレッド部分に対処するための 'Future(doStuff(_))'。 – jwvh
@jwvh 'doStuff'は' Future'を返すことができます... – Dima
こんにちは、あなたが示唆するように、メモリにグループ化されたファイル全体を解析するのは良いですか?私はチャンクを繰り返すと思っていたので、各チャンクはいくつかの未来を作りました...しかし、最後のチャンスは何ですか? – VitalyT