Here you can find the source of zipFile(ZipOutputStream out, String stripPath, File file, char pathSeparator)
private static void zipFile(ZipOutputStream out, String stripPath, File file, char pathSeparator) throws IOException
//package com.java2s; /***************************************************************** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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./* w w w . j av a2s .c o m*/ ****************************************************************/ 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 { /** * Uses code fragments from Jakarta-Ant, Copyright: Apache Software Foundation. */ private static void zipFile(ZipOutputStream out, String stripPath, File file, char pathSeparator) throws IOException { ZipEntry ze = new ZipEntry(processPath(file.getPath(), stripPath, pathSeparator)); ze.setTime(file.lastModified()); out.putNextEntry(ze); byte[] buffer = new byte[8 * 1024]; BufferedInputStream in = new BufferedInputStream(new FileInputStream(file), buffer.length); try { int count = 0; while ((count = in.read(buffer, 0, buffer.length)) >= 0) { if (count != 0) { out.write(buffer, 0, count); } } } finally { in.close(); } } private static String processPath(String path, String stripPath, char pathSeparator) { if (!path.startsWith(stripPath)) { throw new IllegalArgumentException("Invalid entry: " + path + "; expected to start with " + stripPath); } return path.substring(stripPath.length()).replace(File.separatorChar, pathSeparator); } }