2017-02-04 1 views
2

Files.readAllLines javadocの状態:Files.readAllLines - "大きな"ファイルを構成するものは何ですか?

「は、このメソッドは、それが一回の操作ですべての行を読むのに便利 である単純な場合のために意図されていることに注意してくださいそれは、大きなファイルで読み込むための を意図したものではありません。」

このコンテキストでは、大きなファイルは何ですか? (私はまた、なぜそれが大きなファイルのために示唆されないのか不思議です。実際のI/Oが問題なのですか、それとも読み込みの結果を保存するのに使用されるメモリのサイズですか?)

+1

ファイルが些細でない場合は、代わりに 'lines()'をストリームとして使用することをお勧めします。例えば何百ものMB。 –

答えて

5

問題は、このメソッドは、すべてテキストファイルの内容をメモリに読み込むことです。それが多すぎる場合は、単にjava.lang.OutOfMemoryErrorを受け取るだけです。

明らかにしてください:大きいは相対用語です。その量は、特定のマシン上の空きメモリーに依存して指定することはできません。

+0

乾杯、私は明確化を追加しました(それは明らかですが、あなたは正しい、これは明示的に強調されるべきです)。 – Andremoniy

+0

ごめんなさいと申し訳ありません。私が読んだとき、その答えは不完全なようでした。 – Carcigenicate

+0

いいえ気にしない:))))(コメントを追加するには4つの笑顔) – Andremoniy

関連する問題