Create archive or zip using Java
With this example I will show you how to create an archive or zip from multiple files using Java language.
If you already have an idea on how to create a maven project in Eclipse will be great otherwise I will tell you here how to create a maven project in Eclipse.Prerequisites
The following things are required in order to run the application
Eclipse Kepler
JDK 1.8
Have maven 3 installed and configured
Now we will see the below steps how to create a maven based spring project in Eclipse
Step 1. Create a standalone maven project in Eclipse
Go to File -> New -> Other.
On popup window under Maven select Maven Project. Then click on Next. Select the workspace location – either default or browse the location. Click on Next. Now in next window select the row as highlighted from the below list of archtypes and click on Next button.maven-arctype-quickstart
Now enter the required fields (Group Id, Artifact Id) as shown below
Group Id : com.roytuts
Artifact Id : java
Step 2. Modify the pom.xml file as shown below.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.roytuts</groupId>
<artifactId>java</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>java</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jdk.version>1.8</jdk.version>
<junit.version>4.11</junit.version>
</properties>
<dependencies>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
</plugins>
</build>
</project> Step 3. Create a method to create archieve or zip from multiple files
package com.roytuts.archieve;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class Archieve {
@SuppressWarnings("resource")
public static void createZipFromFiles(final String zipFileName, final List<File> files) {
FileOutputStream fos = null;
ZipOutputStream zos = null;
try {
byte[] buffer = new byte[1024];
fos = new FileOutputStream(zipFileName);
zos = new ZipOutputStream(fos);
if (files != null) {
for (File file : files) {
FileInputStream fs = new FileInputStream(file);
zos.putNextEntry(new ZipEntry(file.getName()));
int length;
while ((length = fs.read(buffer)) > 0) {
zos.write(buffer, 0, length);
}
zos.closeEntry();
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (zos != null) {
zos.close();
}
} catch (Exception e) {
}
try {
if (fos != null) {
fos.close();
}
} catch (Exception e) {
}
}
}
} Step 4. Create a junit test case
package com.roytuts.archieve;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
public class ArchieveTest {
private List<File> files;
@Before
public void setUp() throws Exception {
files = new ArrayList<File>();
File f1 = new File("D:/test.sql");
File f2 = new File("D:/website.sql");
File f3 = new File("D:/school.sql");
files.add(f1);
files.add(f2);
files.add(f3);
}
@Test
public void testCreateZipFromFiles() {
Archieve.createZipFromFiles("D:/Archieve.zip", files);
}
} Step 5. Now run the junit test class, you will get the zip output in “D” drive.
Thanks for reading.
No comments
Leave a comment