Android Zip Unzip Directory compress(String path)

Here you can find the source of compress(String path)

Description

compress

Declaration

public static void compress(String path) throws Exception 

Method Source Code


import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import java.util.zip.GZIPOutputStream;

public class Main {
    public static final int BUFFER = 1024;
    public static final String EXT = ".gz";

    public static byte[] compress(byte[] data) {
        ByteArrayInputStream bais = new ByteArrayInputStream(data);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();

        //from   w w  w.j  a v a  2 s  .  c o  m
        compress(bais, baos);

        byte[] output = baos.toByteArray();

        try {
            baos.flush();
        } catch (IOException e) {
            System.out.println(e.getMessage());
        } finally {
            if (baos != null) {
                try {
                    baos.close();
                } catch (IOException e) {
                    
                }
            }

            if (bais != null) {
                try {
                    bais.close();
                } catch (IOException e) {
                    
                }
            }

        }

        return output;
    }

    public static void compress(File file) throws Exception {
        compress(file, true);
    }

    public static void compress(File file, boolean delete) throws Exception {
        FileInputStream fis = new FileInputStream(file);
        FileOutputStream fos = new FileOutputStream(file.getPath() + EXT);

        compress(fis, fos);

        fis.close();
        fos.flush();
        fos.close();

        if (delete) {
            file.delete();
        }
    }

    public static void compress(InputStream is, OutputStream os) {

        GZIPOutputStream gos = null;
        try {
            gos = new GZIPOutputStream(os);
            int count;
            byte data[] = new byte[BUFFER];
            while ((count = is.read(data, 0, BUFFER)) != -1) {
                gos.write(data, 0, count);
            }

            gos.finish();

            gos.flush();
        } catch (IOException e) {
            System.out.println(e.getMessage());
        } finally {
            try {
                gos.close();
            } catch (IOException e) {
                
            }
        }

    }

    public static void compress(String path) throws Exception {
        compress(path, true);
    }

    public static void compress(String path, boolean delete)
            throws Exception {
        File file = new File(path);
        compress(file, delete);
    }
}

Related

  1. zipDirectory(File directory, File zip)
  2. zipDirectory(File directory, File zip)
  3. zipDirectory(File folder, String parentFolder, ZipOutputStream zos)
  4. compress(String filePath, int width, int height)
  5. compress(String paramString)
  6. compress(String path)
  7. compress(String path, boolean delete)
  8. compress(String path, boolean delete)