code: public void closeReader(BitReader reader) throws IllegalArgumentException, BitStreamException {
  		if (reader == null) throw new IllegalArgumentException("null reader");
  		if (reader instanceof InputStreamBitReader) {
  			try {
  				((InputStreamBitReader) reader).getInputStream().close();
  			} catch (IOException e) {
  				throw new BitStreamException(e);
  			}
  		} else if (reader instanceof FileChannelBitReader) {
  			try {
  				((FileChannelBitReader) reader).getChannel().close();
  			} catch (IOException e) {
  				throw new BitStreamException(e);
  			}
  		}
  
  	}
docs: Closes a reader that was previously opened with a call to
  {@link #openReader()}. Closing a reader multiple times has no effect.
  
  @param reader
  the reader to close
  @throws IllegalArgumentException
  if the supplied reader was null
  @throws BitStreamException
  if an IOException was raised when closing the file