2011-10-25 3 views
0

나는 RandomAccessFile과 해당 FileChannel을 가지고 있습니다. 내가 뭘 하려는지 상기 파일에서 바이트의 특정 섹션을 읽습니다; 그러나 FileChannel 읽기 메서드를 살펴보면서 내가하고 싶은 일에 도움이되는 오버로드를 보지 못했습니다. 전체 내용을 읽거나 버퍼의 특정 위치에있는 내용을 읽는 방법 만 읽으면됩니다. 메서드가 필요합니다. 특정 바이트 청크 목표를 달성하는 데 도움이되는 메서드가 있습니까? 아니면 전체 채널을 버퍼로 읽어 들이고 섹션을 어떻게 든 파싱해야합니까?FileChannel을 사용하여 RandomAccessFile에서 특정 바이트를 읽습니다. Java

답변

2

FileChannel#position(long)을 사용하여 파일의 특정 위치로 이동 한 다음 원하는 크기의 버퍼를 read 개 사용할 수 있습니다.

+0

어느 말씀을 읽으셨습니까? 버퍼 크기를 지정하는 오버로드 된 읽기가 표시되지 않습니다. –

+0

@ChrisV. 필요한 사이즈의 ByteBuffer를 작성합니다. 또는 채널을 사용해야하는 강력한 이유가없는 한 RandomAccessFile.read (buffer, int, int)를 사용하십시오. – EJP

관련 문제