private int copyFrom(final InputBitStream ibs,final long codeLength,final OutputStream os) throws IOException {
  int nsymbols=0;
  ibs.readBits(0L);
  if (!isSymbolTable) {
    while (ibs.readBits() < codeLength) {
      final int symbol=decoder.decode(ibs);
      final byte b=(byte)KeyBuilder.encodeByte(symbol);
      os.write(b);
      nsymbols++;
    }
    return nsymbols;
  }
  final byte[] array=data.array();
  final int aoff=this.aoff + BYTE_O_symbols;
  while (ibs.readBits() < codeLength) {
    final int symbol=decoder.decode(ibs);
    final byte b=array[aoff + symbol];
    os.write(b);
    nsymbols++;
  }
  return nsymbols;
}

private int copyFrom ( final InputBitStream ibs , final long codeLength , final OutputStream os ) throws IOException { int nsymbols = 0 ; ibs . readBits ( 0L ) ; if ( ! isSymbolTable ) { while ( ibs . readBits ( ) < codeLength ) { final int symbol = decoder . decode ( ibs ) ; final byte b = ( byte ) KeyBuilder . encodeByte ( symbol ) ; os . write ( b ) ; nsymbols ++ ; } return nsymbols ; } final byte [ ] array = data . array ( ) ; final int aoff = this . aoff + BYTE_O_symbols ; while ( ibs . readBits ( ) < codeLength ) { final int symbol = decoder . decode ( ibs ) ; final byte b = array [ aoff + symbol ] ; os . write ( b ) ; nsymbols ++ ; } return nsymbols ; }
copy a sequence of decoded code words onto the caller ' s stream .
