import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class ZipFiles { public static void main(String[] args) throws Exception { // zip single file String fileContent = "Test zip files"; String fileName = "Test.txt"; String zipFileName = "toan.zip" zipSingleFile(zipFileName, fileName, fileContent); // zip many files String fileContent1 = "Content file 1"; String fileContent2 = "Content file 2"; String zipFileName2 = "manyZip.zip"; zipFiles(zipFileName2, fileContent1, fileContent2); } public static void zipSingleFile(String zipFileName, String fileName, String fileContent) { File file = new File(zipFileName); try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(file))) { ZipEntry zipEntry = new ZipEntry(fileName); zos.putNextEntry(zipEntry); byte[] data = fileContent.getBytes(); zos.write(data, 0, data.length); zos.closeEntry(); } catch (IOException e) { System.out.println("error while zipping file " + zipFileName); } } public static void zipFiles(String zipFileName, String fileContent1, String fileContent2) { File file = new File(zipFileName); try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(file), StandardCharsets.UTF_8)) { zipFileEntry("file1.txt", fileContent1, zos); zipFileEntry("file2.txt", fileContent2, zos); } catch (IOException e) { System.out.println("error while zipping file " + zipFileName); } } public static void zipFileEntry(String fileName, String fileContent, ZipOutputStream zos) throws IOException { ZipEntry zipEntry = new ZipEntry(fileName); zos.putNextEntry(zipEntry); byte[] data = fileContent.getBytes("UTF-8"); zos.write(data, 0, data.length); zos.closeEntry(); } }