Zip File Folder Example Using Java 8 (2024)
In this tutorial, will show you how to zip the folder (compress recursively all files and child folders) using Java 8 and using Core Java libraries. The core libraries belongs to java.util.zip package. Lets start with zipping the folder. I have created
some text files in Notes folder as shown below:
Will give source folder path as 'D:\Notes' and program will zip/compress all files into zip called Notes.zip. We wrapped Files.walk in try with resources block so that stream can be closed.
Example to Zip Folder
package com.techgeeknext;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Stream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipUtility {
private List <String> fileList;
private static final String NOTES_ZIP = "D:\\Notes.zip";
private static final String FOLDER_TO_ZIP = "D:\\Notes";
public static void main(String[] args) throws IOException {
zip(FOLDER_TO_ZIP,NOTES_ZIP);
}
public static void zip(final String sourcNoteseDirPath, final String zipFilePath) throws IOException {
Path zipFile = Files.createFile(Paths.get(zipFilePath));
Path sourceDirPath = Paths.get(sourcNoteseDirPath);
try (ZipOutputStream zipOutputStream = new ZipOutputStream(Files.newOutputStream(zipFile));
Stream<Path> paths = Files.walk(sourceDirPath)) {
paths
.filter(path -> !Files.isDirectory(path))
.forEach(path -> {
ZipEntry zipEntry = new ZipEntry(sourceDirPath.relativize(path).toString());
try {
zipOutputStream.putNextEntry(zipEntry);
Files.copy(path, zipOutputStream);
zipOutputStream.closeEntry();
} catch (IOException e) {
System.err.println(e);
}
});
}
System.out.println("Zip is created at : "+zipFile);
}
}
Output:
Zip is created at : D:\Notes.zip
Java Unzip File Folder Example :
In next tutorial, will learn how to Unzip the folder using Core Java libraries. To unzip a zip file, we will make use of ZipInputStream to read the zip file.
Checkout next post, we will see how to
unzip files or directory using core Java features.