Я получаю следующее исключение при использовании FileChannel.map
Exception in thread "main" java.lang.IllegalArgumentException: Size exceeds Integer.MAX_VALUE
at sun.nio.ch.FileChannelImpl.map(Unknown Source)
at niotest.NioTest.readUsingNio(NioTest.java:38)
at niotest.NioTest.main(NioTest.java:64)
Быстрый поиск в реализации OpenJdk показывает, что метод map (..) в FileChannelImpl
принимает size
типа long
как входной. Но внутри тела он сравнивает его с Integer.MAX_VALUE
и выдает ошибку, если ее больше. Зачем принимать размер long
в качестве входных данных, но ограничивать его максимальной длиной integer
?
Кто-нибудь знает конкретную причину этой реализации? или это какая-то ошибка?
URL-адрес источника - http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/sun/nio/ch/FileChannelImpl.java
Я запускаю эту программу с использованием 64-битной JRE на 64-битной Windows-2k8