문제

일부 데이터 액세스 테스트 구현을 작성하고 있으며 파일 콘텐츠에 대한 임의의 액세스가 필요합니다. 코드는 다음과 같습니다.

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 표).

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