forked from j62/ctbrec
29 lines
872 B
Java
29 lines
872 B
Java
package org.taktik.ioutils;
|
|
|
|
import java.io.IOException;
|
|
import java.nio.ByteBuffer;
|
|
import java.nio.channels.ReadableByteChannel;
|
|
|
|
public class NIOUtils {
|
|
|
|
public static int read(ReadableByteChannel channel, ByteBuffer buffer) throws IOException {
|
|
int rem = buffer.position();
|
|
while (channel.read(buffer) != -1 && buffer.hasRemaining()) {
|
|
}
|
|
return buffer.position() - rem;
|
|
}
|
|
|
|
public static int skip(ByteBuffer buffer, int count) {
|
|
int toSkip = Math.min(buffer.remaining(), count);
|
|
buffer.position(buffer.position() + toSkip);
|
|
return toSkip;
|
|
}
|
|
|
|
public static final ByteBuffer read(ByteBuffer buffer, int count) {
|
|
ByteBuffer slice = buffer.duplicate();
|
|
int limit = buffer.position() + count;
|
|
slice.limit(limit);
|
|
buffer.position(limit);
|
|
return slice;
|
|
}
|
|
} |