1
0
mirror of https://github.com/mitb-archive/filebot synced 2024-12-23 08:18:52 -05:00
filebot/source/net/sourceforge/tuned/ByteBufferInputStream.java
Reinhard Pointner 74b6a8c1a9 * improved DownloadTask and ByteBufferOutputStream
* added unit test for ByteBufferOutputStream
2008-11-22 15:30:33 +00:00

66 lines
1.0 KiB
Java

package net.sourceforge.tuned;
import java.io.IOException;
import java.io.InputStream;
import java.nio.ByteBuffer;
public class ByteBufferInputStream extends InputStream {
private final ByteBuffer buffer;
public ByteBufferInputStream(ByteBuffer buffer) {
this.buffer = buffer.duplicate();
}
@Override
public synchronized int read() throws IOException {
if (buffer.remaining() <= 0)
return -1;
return buffer.get();
}
@Override
public synchronized int read(byte[] b, int off, int len) throws IOException {
if (buffer.remaining() <= 0)
return -1;
int length = Math.min(len, buffer.remaining());
buffer.get(b, off, length);
return length;
}
@Override
public synchronized int available() throws IOException {
return buffer.remaining();
}
@Override
public boolean markSupported() {
return true;
}
@Override
public synchronized void mark(int readlimit) {
buffer.mark();
}
@Override
public synchronized void reset() throws IOException {
buffer.reset();
}
}