そのため、マップされたFileChannelを使用して非常に大きなファイルを読み込もうとしています。
ファイルが2GBを超えています。コードのスニペットは次のとおりです。
long fileSize = 0x8FFFFFFFL;
FileChannel fc = new RandomAccessFile("blah.huge", "rw").getChannel();
fc.map(FileChannel.MapMode.READ_WRITE, 0, fileSize);
これはエラーをスローします:
Exception in thread "main" java.lang.IllegalArgumentException: Size exceeds Integer.MAX_VALUE
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:789)
FileChannel.mapはlong
、ファイルサイズとしてを取ります。では、このエラーは意味がありますか?なぜ彼らはそれよりも大きなファイルのサポートを提供しないのでしょうか?