ByteBufferInputStreamAdapter.java
package io.github.msdk.io.mzxml;
import java.io.InputStream;
import it.unimi.dsi.io.ByteBufferInputStream;
/**
* <p>ByteBufferInputStreamAdapter class.</p>
*/
public class ByteBufferInputStreamAdapter extends InputStream {
private long remainingBytes;
private ByteBufferInputStream is;
/**
* <p>Constructor for ByteBufferInputStreamAdapter.</p>
*
* @param is a {@link it.unimi.dsi.io.ByteBufferInputStream} object.
* @param position a long.
* @param remainingBytes a long.
*/
public ByteBufferInputStreamAdapter(ByteBufferInputStream is, long position,
long remainingBytes) {
this.is = is;
this.remainingBytes = remainingBytes;
is.position(position);
}
/**
* <p>Constructor for ByteBufferInputStreamAdapter.</p>
*
* @param is a {@link it.unimi.dsi.io.ByteBufferInputStream} object.
*/
public ByteBufferInputStreamAdapter(ByteBufferInputStream is) {
this(is, 0, is.length());
}
/** {@inheritDoc} */
@Override
public int read() {
return (remainingBytes-- <= 0 ? -1 : is.read());
}
}