所以我試圖讀取一個非常大的文件使用映射的FileChannel。Java可能FileChannel.map錯誤
該文件超過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
作爲文件大小。那麼這個錯誤是否有意義?爲什麼他們不支持比這更大的文件?
按照記錄工作,downvote。 – EJP
+1:記錄極限並不意味着它是有道理的。 –