/*
         * Writes any unwritten compressed data to the underlying stream, the closes
         * all underlying streams. This stream can no longer be used after close()
         * has been called.
         *
         * @throws IOException
         *             If an error occurs while closing the data compression
         *             process.
         */

        public override void close() // throws IOException {
        {
            if (!def.finished())
            {
                finish();
            }
            def.end();
            outJ.close();
        }
 /**
  * Closes the underlying input stream and discards any remaining uncompressed
  * data.
  */
 public override void close() // throws IOException {
 {
     closed = true;
     def.end();
     inJ.close();
 }