Java Zip Files addFileToZip(File file, String parentFolderName, ZipOutputStream zip)

Here you can find the source of addFileToZip(File file, String parentFolderName, ZipOutputStream zip)

Description

Adds a specified File (that is not a folder) to the specified ZipOutputStream , the File being located in the specified parent folder.

License

CDDL license

Parameter

Parameter Description
file a file representing the File to add
parentFolderName the parent folder of the File
zip the ZipOutputStream to which to write the File

Exception

Parameter Description
IOExceptionshould any problems occur

Declaration

private static void addFileToZip(File file, String parentFolderName,
        ZipOutputStream zip) throws IOException 

Method Source Code

//package com.java2s;
/*//from w w w.  java2s .c o m
 * File: FileHelper.java
 *
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 *
 * The contents of this file are subject to the terms and conditions of 
 * the Common Development and Distribution License 1.0 (the "License").
 *
 * You may not use this file except in compliance with the License.
 *
 * You can obtain a copy of the License by consulting the LICENSE.txt file
 * distributed with this file, or by consulting https://oss.oracle.com/licenses/CDDL
 *
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing the software, include this License Header Notice in each
 * file and include the License file LICENSE.txt.
 *
 * MODIFICATIONS:
 * If applicable, add the following below the License Header, with the fields
 * enclosed by brackets [] replaced by your own identifying information:
 * "Portions Copyright [year] [name of copyright owner]"
 */

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;

import java.io.IOException;

import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class Main {
    /**
     * Adds a specified {@link File} (that is not a folder) to the specified
     * {@link ZipOutputStream}, the {@link File} being located in the specified parent
     * folder.
     *
     * @param file              a file representing the {@link File} to add
     * @param parentFolderName  the parent folder of the {@link File}
     * @param zip               the {@link ZipOutputStream} to which to write the {@link File}
     *
     * @throws IOException  should any problems occur
     */
    private static void addFileToZip(File file, String parentFolderName,
            ZipOutputStream zip) throws IOException {
        String parent = parentFolderName == null
                || parentFolderName.trim().isEmpty() ? ""
                : parentFolderName.trim() + "/";

        if (file.exists()) {
            zip.putNextEntry(new ZipEntry(parent + file.getName()));

            BufferedInputStream inputStream = new BufferedInputStream(
                    new FileInputStream(file));
            byte[] buffer = new byte[16096];
            int count = 0;

            while ((count = inputStream.read(buffer)) != -1) {
                zip.write(buffer, 0, count);
            }

            zip.closeEntry();
        }
    }
}

Related

  1. addFilesToZip(File zipFile, File[] files, String[] fileNames)
  2. addFileToZip(File file, String entryName, ZipOutputStream zos)
  3. addFileToZip(File file, String entryName, ZipOutputStream zOut)
  4. addFileToZip(File file, ZipOutputStream zos)
  5. addFileToZip(File in, File parent, ZipOutputStream out)
  6. addFileToZip(File root, File file, ZipOutputStream zos)
  7. addFileToZip(final File file, final String zipName, final ZipOutputStream zipout)