그래서 매핑 된 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 : 한계가 있음을 문서화한다고해서 의미가있는 것은 아닙니다. –