2016-06-29 3 views
1

私はkey:value行を持つ大きなデータCSVファイルを持っています。どのように私はそれを並行して読むことができますか? すべての行に別のバイトサイズがあるため、チャンクに分割できません。 この場合、どうすればよいですか?Java + Akkaでファイルの並行性を読み取る方法

Javaで例が見つかりません。

答えて

2

実際には、同じファイルパラレルを読み取る理由はありません。ファイルの読み込み速度を上げることはないからです。あなたは、あなたがそれを行うには、いくつかのオプションがあり、ファイル読み込みたい場合:

  1. をあなたが一度に[] 1バイトにファイル全体を読んで、それは、ファイルをロードする最速の方法だと、その後、あなたはそれを分割することができますデータを管理することができます。

  2. スキャナとnextLineメソッドを使用して、ファイルから行を読み込みます。それは本当に効率的ではないので、私はこれをお勧めしません。

  3. ファイルをいくつかのフッタバイト配列で読み込みます。これはメモリ使用効率のよいソリューションですが、1.オプションは依然として最高です。ファイルの読み込みが比較的遅いので

また、バイト配列にすべてのファイルを読み込み、あなたは(はい、ただ一つだけ、より多くの必要がない)スレッドを作る必要があります(RAMのデータ管理と比較して)また、バイト[]をあなたのロードされた設定に変換する別のスレッドかもしれません。なぜなら、ファイルが大きければまた時間がかかるからです。

関連する問題