code: public int available() {
          long amount = getHeader().getLength() - getPosition();
          return (amount > Integer.MAX_VALUE? Integer.MAX_VALUE: (int)amount);
      }
docs: This available is not the stream's available. Its an available based on
  what the stated Archive record length is minus what we've read to date.
  
  @return True if bytes remaining in record content.