1
다른 파일과 내 파일을 비교하는 클래스 비교자가 있습니다. 이 부분에서는 다른 파일의 블록과 비교할 파일에서 바이트 블록을 가져 오려고합니다. 나는 큰 파일 하나를 사용하려고하면버퍼 언더 플로 예외 java
public class CompareFiles {
private byte[] getBytesFromFile(File file) throws IOException {
long BUFFER_SIZE = 4 * 1024;
RandomAccessFile raf = new RandomAccessFile(file, "rw");
FileChannel fc = raf.getChannel();
MappedByteBuffer buffer = fc.map(FileChannel.MapMode.READ_ONLY, 0, BUFFER_SIZE);
byte[] bytes = new byte[(int) fc.size()];
buffer.get(bytes);
buffer.clear();
return bytes;
}
}
나는 내가 내 마음에 실수를하고 잘못된 방법으로 블록과 비교 하시고
Exception in thread "main" java.nio.BufferUnderflowException
at java.nio.DirectByteBuffer.get(Unknown Source)
at java.nio.ByteBuffer.get(Unknown Source)
같아요
를 얻을.