Compress a list of files passed in from command line : GZIP « File Input Output « Java






Compress a list of files passed in from command line

  

import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import java.util.zip.ZipException;

class ZipDemo {
  private static final int DEFAULT_BUFFER_SIZE = 4096;

  public static final byte[] compress(final String uncompressed) throws IOException {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    GZIPOutputStream zos = new GZIPOutputStream(baos);

    byte[] uncompressedBytes = uncompressed.getBytes();

    zos.write(uncompressedBytes, 0, uncompressedBytes.length);
    zos.close();

    return baos.toByteArray();
  }

  public static final String uncompress(final byte[] compressed) throws IOException {
    String uncompressed = "";

    try {
      ByteArrayInputStream bais = new ByteArrayInputStream(compressed);
      GZIPInputStream zis = new GZIPInputStream(bais);

      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      int numBytesRead = 0;
      byte[] tempBytes = new byte[DEFAULT_BUFFER_SIZE];
      while ((numBytesRead = zis.read(tempBytes, 0, tempBytes.length)) != -1) {
        baos.write(tempBytes, 0, numBytesRead);
      }

      uncompressed = new String(baos.toByteArray());
    } catch (ZipException e) {
      e.printStackTrace(System.err);
    }

    return uncompressed;
  }

  public static final String uncompress(final String compressed) throws IOException {
    return ZipDemo.uncompress(compressed.getBytes());
  }

  public static void main(String[] args) throws Exception{
      for (int i = 0; i < args.length; ++i) {
        String uncompressed = "";
        File f = new File(args[i]);

        if (f.exists()) {
          BufferedReader br = new BufferedReader(new FileReader(f));

          String line = "";
          StringBuffer buffer = new StringBuffer();

          while ((line = br.readLine()) != null)
            buffer.append(line);

          br.close();
          uncompressed = buffer.toString();
        } else {
          uncompressed = args[i];
        }

        byte[] compressed = ZipDemo.compress(uncompressed);

        String compressedAsString = new String(compressed);

        byte[] bytesFromCompressedAsString = compressedAsString.getBytes();

        bytesFromCompressedAsString.equals(compressed);
        System.out.println(ZipDemo.uncompress(compressed));
        System.out.println(ZipDemo.uncompress(compressedAsString));
     }
  }
}

           
         
    
  








Related examples in the same category

1.GZip with GZIPOutputStream
2.Ungzip with GZIPInputStream
3.Uncompress a file in the GZIP format
4.Compressing a File in the GZIP Format
5.Uncompressing a File in the GZIP Format
6.Compress a file in the GZIP format
7.gzipping files and zipping directories
8.Compress Java objects
9.Decompress Java objects
10.Compressed socket
11.GZIP compress
12.Compressing a File
13.Read some data from a gzip file
14.A collection of utility methods for working on GZIPed data
15.Reads GZIP, Zip, and Jar files
16.GZIP Filter, response stream and Response Wrapper