0

Modelファイルをロードし、その情報を使用してクラスにデータを入力するプログラムに取り組んでいます。これらのファイルのサイズは、数 KB からほぼ 1 GB までさまざまです。サイズが変動すると、Modelクラスが使用するメモリも変動します。

十分な大きさのファイルをロードすると、OutOfMemoryError.

ユーザーによるファイルのロード要求を (ファイル サイズに基づいて) 拒否できます。ファイルを調べ、そのサイズを判断し、アプリケーションがそれを処理できるかどうかを判断するにはどうすればよいですか?

これをユーザーのコンピューターの RAM の量に適応させる方法はありますか?

4

2 に答える 2

2

File.length()を使用してファイルのサイズを判断し、大きすぎる場合は拒否します。

大きすぎるかどうかはどうやってわかりますか?Runtime.freeMemory()を使用して、残っているヒープの量を確認します。もちろん、ファイルをロードしてModelクラスに追加すると、追加のメモリが必要になり、実際にはファイルの内容全体を保持できない場合があります。データの使用方法に関する知識に基づいて、クラス内のすべてのデータをロードするための十分な余地を残す必要があります。

通常、JVM にはユーザーのコンピューターのすべてのメモリが割り当てられるわけではありませんが、デフォルトではより小さな数になることに注意してください。ユーザーがデフォルトに満足していない場合は、Xmx オプションで変更できます。

于 2013-09-26T21:07:26.770 に答える