2016-03-30 14 views
-1

私はJavaを学んでおり、クラスRandomAccessFile()があり、ファイルの長さはlong(8バイト)です。ファイルの最大サイズに達した場合は何が起こったのだろうか、明示的に新しい1つまたはそれを拡張する方法がありますか?アーカイブの最大長に達した場合はどうなりますか?

+0

あなたは何について話しているのか分かりません。私はあなたがどちらについて話しているのか分からないと信じています。 「ファイルのサイズに達した場合」とはどういう意味ですか? –

+0

最大サイズが – user3763927

+0

2^63であることを忘れています。約10^19または約10,000テラバイトです。 –

答えて

0

ファイル「領域」を使い果たす前に、コンピュータのメモリが足りなくなります。 longは、2^64までの数字を表すことができ、コンピュータの記憶容量よりはるかに大きいことがわかります。

+0

あなたは必ずしもコンピュータのメモリを使い果たす必要はありません。オペレーティングシステムとファイルシステムがサポートしている限り、メタデータのサイズより多くのメモリを使用しない "穴"(疎なファイルを探す)でファイルを作成できます。 – JiriS

1

それはJVMによってサポートされていないとして、あなたはこの制限(2^63 - 1)に到達することはありませんし、おそらくお使いのオペレーティングシステムによってだけでなく、しかし、あなたのオペレーティングシステムがサポートしている場合、あなたは、単にメッセージ"Seek failed"IOExceptionになるだろう、すべての最初に(参照詳細についてはRandomAccessFile.cを参照してください)。

関連する問題