문제

RandomAccessFile을 사용하여 큰 파일 (~ 200MB)을 열고 채널을 가져 오는 것입니다.일부 데이터를 MappedByteBuffer에 매핑하려고합니다. 그러나 예외를 얻는 중입니다.

채널 쓰기를 위해 열려 있지 않음 - 필수 크기의 파일을 확장 할 수 없습니다.

필자는 알아낼 수 없습니다. 맵 메소드가 파일 - 매핑 영역에 쓰려고하는 이유는 파일 크기보다 작습니다!이 경우 파일을 확장하려는 이유는 무엇입니까?

업데이트

문제가 해결되면 파일의 인덱스 위치에 대해 3 번째 매개 변수가 버퍼의 길이였습니다.

도움이 되었습니까?

해결책

doc :

매개 변수 :

위치 맵핑 된 영역이 시작되는 파일 내의 위치;음성이 아닌

이어야합니다

크기 맵핑 할 영역의 크기;java.lang.Integer.max_value보다 더 크지 않아야합니다.

파일 크기가 정확히 무엇입니까? 파일 크기를 초과하는 오프셋 + 크기를 매핑하려고합니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top