public ByteBuffer read(int offset, int length) throws IOException {
		ByteBuffer data = ByteBuffer.allocate(length);
		int bytes = this.channel.read(data, offset);
		data.clear();
		data.limit(bytes >= 0 ? bytes : 0);
		return data;
	}