RandomAccessFile이 int를 오프셋으로 사용하는 이유는 무엇입니까?
-
18-09-2019 - |
문제
일부 데이터 액세스 테스트 구현을 작성하고 있으며 파일 콘텐츠에 대한 임의의 액세스가 필요합니다. 코드는 다음과 같습니다.
RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rwd");
final byte b[] = IOUtils.toByteArray(source);
randomAccessFile.write(b, (int) offset, size);
오프셋이 길게 유형되는 경우. RandomAccessFile이 방법을 제공하지 않는 이유는 다음과 같습니다.
public void write(byte b[], long off, int len)
?
이 문제를 무시하는 방법은 무엇입니까?
해결책
나는 당신이 찾고 있다고 생각합니다 seek
방법.
오프셋 write
배열로의 오프셋입니다. 배열이 있습니다 int
오프셋. "긴 배열"에 대한 제안이 있었지만 구현되었으므로 여전히 과부하가 필요합니다.
NIO의 매핑 된 파일 MappedByteBuffer.position
어떤 이유로 만 사용합니다 int
. 보다 CR 6347833 (9 표).
제휴하지 않습니다 StackOverflow