私はJavaの初心者です。300mbのテキストファイルを開いて1行ずつ読み込んで解析したいと思っています。いくつかの研究をした後、nioパッケージが最善の方法です。私は、これをやっている間に何かを考えなければならないことがあるのか、それとも既にこれをした人からのヒントがあれば、非常に感謝しているのだろうかと思っていました。300MBのテキストファイルをJavaを使用して
答えて
Java NIOは正常に動作しますが、java.io
パッケージのクラスも正常に動作します。
NIOが必要だと確信しています。
大きな問題は、ファイルをメモリに格納した後にファイルを処理することです。
私はちょうどJavaで大きなテキストファイルを読むことを探していました。そして、NIOに到着しました。私は一度に1行を読み込んでいるので、ioやnioを使用するのは問題ありません。ファイルをメモリに格納したら、各行を取得し、その行を解析し、その行に基づいてデシジョンツリーを作成し、その行の結果を取得して次の行に移動して同じことをしたい。 – hoooman
ラインが処理された後に破棄することができれば、そのラインをメモリに保持すべきではありません。これがファイルをストリーミングする全体のポイントです。もちろん、1行の長さのバッファを持つことと混同しないでください。それは気が狂っているだろう。 – xanadont
同じ問題が発生したときにインデックスを作成していました。読むためにスレッドを使用することにより、次の2つの方法でこの問題を解決することができ
...
- 。ここ
NIOを使用することにより
は、二つの300メガバイトのファイルの解析における方法および使用は、実施例のソースコードです。リンク>>あなたはそれがライン・バイ・ライン読んでいる場合はhttp://technicalmumbojumbo.wordpress.com/2011/03/17/file-io-old-io-or-nio-which-is-better/
ありがとう、あなたが提供したリンクは大きな助けです。 – hoooman
- 1. Pythonライブラリを使用して2GB〜300MBを圧縮する方法
- 2. テキストファイルを使用してC#?
- 3. Javaを使用してテキストファイルを更新する
- 4. java eclipseを使用して行単位でテキストファイルを読む
- 5. Javaを使用してテキストファイルに出力を書き込む
- 6. PHPは300MBのRAMを使用できません
- 7. Java GUIを使用してテキストファイルに書き込む
- 8. 2つのループを使用したJavaの読み込みテキストファイル
- 9. Javaのテキストファイルを使用したユーザー入力のエラーチェック
- 10. OpenMPを使用してテキストファイルを読む
- 11. Javaを使用してテキストファイルの単語の頻度を数えるには?
- 12. テキストファイルをJavaのリスト<String> CommonsまたはGuavaを使用して
- 13. javaを使用してテキストファイル内の文字列を検索する問題
- 14. JavaでRTL文字を使用してBufferedInputStreamを使用して、行ごとにテキストファイルを解析する
- 15. Ajax、jQuery、Javaを使用してテキストファイルを読み書きします。
- 16. Java Webアプリケーションのメモリ消費量(300MBが高すぎますか?)
- 17. Cでテキストファイルを使用して認証
- 18. PrintStreamを使用してテキストファイルに追加
- 19. コンテンツをJavaを使用してテキストファイルに保存できません
- 20. javaを使用してテキストファイルから文字列を読み込む
- 21. javaを使用してコンソール出力をテキストファイルに保存する方法は?
- 22. Java APIを使用してApache Sparkにテキストファイル、イメージを格納する方法は?
- 23. スタティックRealm.frameworkは300MBですか?
- 24. Excelファイルサイズ300MBに近い
- 25. numpy.loadtxt()を使用してテキストファイルを文字列としてロード
- 26. DirectoryChooserを使用してテキストファイルを作成して保存する
- 27. Pythonを使用してテキストファイル内の行を検索します。
- 28. Pythonを使用して1つのテキストファイルから別のテキストファイルにコピー
- 29. MPIを使用したテキストファイルの連結
- 30. Pythonを使用したテキストファイルへのJSON
おそらくあなたが使用しているものは問題ではありません。 –
これは、RAMに300をロードしてRAM上で動作させるほうが速くないか、またはこれに余分なオーバーヘッドがあり、私はそうしてはいけません。基本的にはできるだけ早くこれをやりたい – hoooman
もちろん、RAMのデータを操作する方が高速です。あなたが言った前に、あなたは一行ずつ読んでパースしたいと思っていました。いずれにせよ、全体をRAMに読み込みますが、バッファされたリーダーを使用し、行ごとに読み込まないでください。どのioパッケージを使用するかは心配するほど重要ではありません。 –