code: public static BitReader readerFrom(FileChannel channel, ByteBuffer buffer) {
  		if (channel == null) throw new IllegalArgumentException("null channel");
  		if (buffer == null) throw new IllegalArgumentException("null buffer");
  		return new FileChannelBitReader(channel, buffer);
  	}
docs: A {@link BitReader} that sources bits from a <code>FileChannel</code>.
  This stream operates with a byte buffer. This will generally improve
  performance in applications that skip forwards or backwards across the
  file.
  
  Note that using a direct ByteBuffer should generally yield better
  performance.
  
  @param channel
  the file channel from which bits are to be read
  @param buffer
  the buffer used to store file data
  @return a bit reader over the channel