2011-11-09 9 views
0

私はJavaの初心者です。300mbのテキストファイルを開いて1行ずつ読み込んで解析したいと思っています。いくつかの研究をした後、nioパッケージが最善の方法です。私は、これをやっている間に何かを考えなければならないことがあるのか​​、それとも既にこれをした人からのヒントがあれば、非常に感謝しているのだろうかと思っていました。300MBのテキストファイルをJavaを使用して

+4

おそらくあなたが使用しているものは問題ではありません。 –

+0

これは、RAMに300をロードしてRAM上で動作させるほうが速くないか、またはこれに余分なオーバーヘッドがあり、私はそうしてはいけません。基本的にはできるだけ早くこれをやりたい – hoooman

+0

もちろん、RAMのデータを操作する方が高速です。あなたが言った前に、あなたは一行ずつ読んでパースしたいと思っていました。いずれにせよ、全体をRAMに読み込みますが、バッファされたリーダーを使用し、行ごとに読み込まないでください。どのioパッケージを使用するかは心配するほど重要ではありません。 –

答えて

0

Java NIOは正常に動作しますが、java.ioパッケージのクラスも正常に動作します。

NIOが必要だと確信しています。

大きな問題は、ファイルをメモリに格納した後にファイルを処理することです。

+0

私はちょうどJavaで大きなテキストファイルを読むことを探していました。そして、NIOに到着しました。私は一度に1行を読み込んでいるので、ioやnioを使用するのは問題ありません。ファイルをメモリに格納したら、各行を取得し、その行を解析し、その行に基づいてデシジョンツリーを作成し、その行の結果を取得して次の行に移動して同じことをしたい。 – hoooman

+0

ラインが処理された後に破棄することができれば、そのラインをメモリに保持すべきではありません。これがファイルをストリーミングする全体のポイントです。もちろん、1行の長さのバッファを持つことと混同しないでください。それは気が狂っているだろう。 – xanadont

2

同じ問題が発生したときにインデックスを作成していました。読むためにスレッドを使用することにより、次の2つの方法でこの問題を解決することができ

...

  1. 。ここ

NIOを使用することにより

  • は、二つの300メガバイトのファイルの解析における方法および使用は、実施例のソースコードです。

    リンク>>あなたはそれがライン・バイ・ライン読んでいる場合はhttp://technicalmumbojumbo.wordpress.com/2011/03/17/file-io-old-io-or-nio-which-is-better/

    +0

    ありがとう、あなたが提供したリンクは大きな助けです。 – hoooman

    関連する問題