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)
我猜,我犯错,我的心灵,让以错误的方式比较块。