diff --git a/src/main/java/com/reandroid/archive2/io/FileChannelInputStream.java b/src/main/java/com/reandroid/archive2/io/FileChannelInputStream.java index 1ec3d98..2ba4330 100644 --- a/src/main/java/com/reandroid/archive2/io/FileChannelInputStream.java +++ b/src/main/java/com/reandroid/archive2/io/FileChannelInputStream.java @@ -91,7 +91,12 @@ public class FileChannelInputStream extends InputStream { if(this.bufferPosition < bufferLength){ return; } - ByteBuffer byteBuffer = ByteBuffer.wrap(buffer); + int length = buffer.length; + long available = totalLength - position; + if(length > available){ + length = (int) available; + } + ByteBuffer byteBuffer = ByteBuffer.wrap(buffer, 0, length); bufferLength = fileChannel.read(byteBuffer); bufferPosition = 0; }