code: static byte[] unzipForHeader( byte[] bs, int chkSize ) {
  
      ByteArrayInputStream bais = new ByteArrayInputStream(bs);
      ZipInputStream zis = new ZipInputStream(bais);
  
      InputStream is = zis;
  
      // Now read from the compressed stream
      int off = 0;
  
      try {
        while( off < bs.length ) {
          int len = 0;
          len = is.read(bs, off, bs.length - off);
          if( len < 0 )
            break;
          off += len;
          if( off == bs.length ) { // Dataset is uncompressing alot! Need more space...
            if( bs.length >= chkSize )
              break; // Already got enough
            bs = Arrays.copyOf(bs, bs.length * 2);
          }
        }
      } catch (IOException e) {
        e.printStackTrace();
      }
  
      try {
        is.close();
      } catch (IOException e) {
        e.printStackTrace();
      }
  
      return bs;
    }
docs: This method will read a compressed zip file and return the uncompressed bits so that we can
  check the beginning of the file and make sure it does not contain the column names.
  
  @param bs
  @param chkSize
  @return