大きなファイル、100,000行があります。私は各行を読んでそれを処理することができます。あるいは、行を配列に格納して処理することができます。私は余分な機能のために配列を使用することを好むだろうが、私は本当に配列にその多くの行を格納することに関連付けられているメモリ使用量、そしてそれが価値がある場合は心配です。大きなファイルを1行ずつ読み込む、またはその行を配列に格納する
6
A
答えて
3
2つの機能があります。
最初はfile()
で、ファイル全体を配列要素に読み込み、各行を配列要素として読み取ります。これは短いファイルには適しており、おそらく100k行ファイルで使用したいものではありません。この関数は独自のファイル管理を処理するため、ファイルを明示的に開いたり閉じたりする必要はありません。
fgets()
は、一度に1行ずつファイルを読み取るために使用できます。これを使用して、処理する行がさらにある限りループし、ループ内で行処理を実行することができます。このファイルのハンドルを取得するにはfopen()
を使用する必要があります。リカバリ管理のためにファイルポインタを自分自身で追跡する必要があります(つまり、何かが横になりスクリプトが失敗した場合に処理を最初からやり直す必要はありません)。
これで十分です。
1
2つの組み合わせはどうですか?配列に1000行を読み込んで処理し、配列を削除してから1000個以上を読み込みます。メモリの使用状況を監視し、一度に配列に読み込む数を調整します。
関連する問題
- 1. オブジェクトを行ごとに配列に格納しながらファイルを1行ずつ読み込みます。
- 2. テキストファイルを1行ずつ読み込んでオブジェクトを配列に格納する
- 3. テキストファイルを1行ずつ読み込み、AS3の配列にプッシュ
- 4. ファイルを1行ずつ読み込むときのパフォーマンス対ファイル全体を読み込むときの比較
- 5. asyncioでファイルを1行ずつ読み込みます
- 6. d行内の行の配列にファイルを読み込む
- 7. intデータをchar配列に格納して読み込む
- 8. ファイルを1行ずつ読み込み、可変長の行を印刷する
- 9. ファイルから読み込んで配列に格納するC++
- 10. ファイルを1行ずつ読み込み、各行を分割する方法
- 11. 目的c xmlを読み込み、配列に格納する
- 12. 2d arraylistにファイルを読み込み、各単語を配列リストに一行に格納する
- 13. Java: "\ n"を無視して1行ずつファイルを読み込む方法
- 14. Unixシェルスクリプトでファイルを1行ずつ(空白で)読み込む - 問題
- 15. バッチまたはVBSスクリプトで1行ずつテキストファイルを読み込みますか?
- 16. PHPファイルを配列に読み込む
- 17. csvファイルを配列に読み込む
- 18. C:ファイルを配列に読み込む
- 19. ファイル名を配列に読み込む
- 20. 大きなファイルから特定の行を効率的に読み込むR
- 21. XMLファイルに格納されたビジネスルールを読み込むエレガントな方法
- 22. バッチファイルで1行ずつtxtを読む
- 23. PHP - 大きなセッション配列を$ _SESSIONまたはデータベースに格納するには?
- 24. ファイルを読み込み、文字列をdoubleに変換し、2dの配列に格納します。
- 25. プルパーサーを使用して、大きなxmlファイルをJavaで一度に1ノードずつ読み込みますか?
- 26. テキストファイルをCの行の配列に読み込む
- 27. 大きなXMlファイルから1行を読む
- 28. Androidは大きなファイルを行単位で読み込みます
- 29. Excelファイルを読み込んで、Cで配列の1行を取得する#
- 30. Pythonで圧縮されたファイルから1行ずつ読む
この操作は一度だけ行う必要がありますか、多くの同時Webユーザーがこの操作をトリガーしますか?そして多くの場合、ファイルの内容をデータベースに保存してみませんか? –
'SplFileObject'を使って、テキストライン(イテレータ)への配列のようなアクセスを得ることができます。 – mario
おそらく、あなたの問題に対するより良いアプローチが見つかりませんでした。ごくまれに、メモリに100 000本の線を同時に開く必要があります。これを行う他の方法を考えてみましょう。あなたは既存の計画にパフォーマンスの問題があるでしょう。 – Incognito