Java Zip File List zipFileList(List files, File destinationDir)

Here you can find the source of zipFileList(List files, File destinationDir)

Description

GZIP the specified list of files.

License

Apache License

Parameter

Parameter Description
files the files to GZIP. Each file is GZIPed separately with the same file name and a .gz extension.
destinationDir the destination directory to write the list of zipped files

Exception

Parameter Description
IOException if there is a problem creating the zip files

Declaration

public static void zipFileList(List<File> files, File destinationDir) throws IOException 

Method Source Code

//package com.java2s;
/*******************************************************************************
 * /*from  w w w  .j a  va2  s. com*/
 * Copyright 2011 Spiffy UI Team   
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 ******************************************************************************/

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import java.util.zip.GZIPOutputStream;

public class Main {
    /**
     * <p>
     * GZIP the specified list of files.
     * </p><p>
     * <p>
     * Many web servers will send GZIP versions of static files to browsers which support it. 
     * This method will GZIP lists of files so they can be served to those browsers. 
     * </p>
     * 
     * @param files  the files to GZIP.  Each file is GZIPed separately with the same file name
     *               and a .gz extension.
     * @param destinationDir
     *               the destination directory to write the list of zipped files
     * 
     * @throws IOException
     *                if there is a problem creating the zip files
     */
    public static void zipFileList(List<File> files, File destinationDir) throws IOException {
        for (File source : files) {
            File dest = new File(destinationDir, source.getName() + ".gz");
            zipFile(source, dest);
        }
    }

    private static void zipFile(File source, File dest) throws IOException {
        FileInputStream in = new FileInputStream(source);
        BufferedInputStream in2 = new BufferedInputStream(in);
        FileOutputStream out = new FileOutputStream(dest);
        GZIPOutputStream zipOut = new GZIPOutputStream(out);
        BufferedOutputStream out2 = new BufferedOutputStream(zipOut);

        try {
            int chunk;
            while ((chunk = in2.read()) != -1) {
                out2.write(chunk);
            }
        } finally {
            if (out2 != null) {
                out2.close();
            }

            if (zipOut != null) {
                out2.close();
            }

            if (out != null) {
                out.close();
            }
        }
    }
}

Related

  1. zip(List srcFiles, OutputStream os)
  2. zip(String[] filename, String outname)
  3. zip(String[] sFl, String sZip)
  4. zip(String[] sourceFiles, String zipFile, String directory)
  5. zip(String[] srcFiles, String dstFile, String comment)
  6. zipFiles(ArrayList files, String destZipFile)
  7. zipFiles(Collection resFileList, File zipFile)
  8. zipFiles(File file, JarOutputStream jos, String pathName)
  9. zipFiles(File output, File root, List fileList)