java-zip4j-tut-working-with-zipinput-zipoutput-1
import net.lingala.zip4j.io.outputstream.ZipOutputStream;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.model.enums.AesKeyStrength;
import net.lingala.zip4j.model.enums.CompressionMethod;
import net.lingala.zip4j.model.enums.EncryptionMethod;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
public class SampleClass{
public static void main(String[] args)
throws IOException{
try(ZipOutputStream zos =
new ZipOutputStream(
new FileOutputStream(
new File("myzip.zip")),
"password".toCharArray())){
ZipParameters zp =
new ZipParameters();
zp.setCompressionMethod
(CompressionMethod.STORE);
zp.setEncryptFiles(true);
zp.setEncryptionMethod
(EncryptionMethod.AES);
zp.setAesKeyStrength
(AesKeyStrength.KEY_STRENGTH_256);
List<FilesToAdd> filesToAdd =
Arrays.asList(
new FilesToAdd
(new File("folder/img1.jpg"), zp),
new FilesToAdd
(new File("folder/img2.jpg"), zp),
new FilesToAdd
(new File("folder/img3.jpg"), zp)
);
for(FilesToAdd fta : filesToAdd){
//Entry size(bytes) must be set if we want to use
//STORE to be used as compression method in
//an entry.
//
//DEFLATE compression doesn't have this
//requirement
if(fta.getZipParameters().
getCompressionMethod() == CompressionMethod.STORE)
fta.getZipParameters().
setEntrySize(fta.getFile().length());
//This parameter must be set if we're sending
//data to a zip file via stream
fta.getZipParameters().setFileNameInZip
(fta.getFile().getName());
zos.putNextEntry(fta.getZipParameters());
try(InputStream is =
new FileInputStream(fta.getFile())){
is.transferTo(zos);
}
zos.closeEntry();
}
}
}
}
class FilesToAdd{
private File file;
private ZipParameters zp;
FilesToAdd(File file, ZipParameters zp){
this.file = file;
this.zp = zp;
}
ZipParameters getZipParameters(){
return zp;
}
File getFile(){
return file;
}
}
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.model.enums.AesKeyStrength;
import net.lingala.zip4j.model.enums.CompressionMethod;
import net.lingala.zip4j.model.enums.EncryptionMethod;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
public class SampleClass{
public static void main(String[] args)
throws IOException{
try(ZipOutputStream zos =
new ZipOutputStream(
new FileOutputStream(
new File("myzip.zip")),
"password".toCharArray())){
ZipParameters zp =
new ZipParameters();
zp.setCompressionMethod
(CompressionMethod.STORE);
zp.setEncryptFiles(true);
zp.setEncryptionMethod
(EncryptionMethod.AES);
zp.setAesKeyStrength
(AesKeyStrength.KEY_STRENGTH_256);
List<FilesToAdd> filesToAdd =
Arrays.asList(
new FilesToAdd
(new File("folder/img1.jpg"), zp),
new FilesToAdd
(new File("folder/img2.jpg"), zp),
new FilesToAdd
(new File("folder/img3.jpg"), zp)
);
for(FilesToAdd fta : filesToAdd){
//Entry size(bytes) must be set if we want to use
//STORE to be used as compression method in
//an entry.
//
//DEFLATE compression doesn't have this
//requirement
if(fta.getZipParameters().
getCompressionMethod() == CompressionMethod.STORE)
fta.getZipParameters().
setEntrySize(fta.getFile().length());
//This parameter must be set if we're sending
//data to a zip file via stream
fta.getZipParameters().setFileNameInZip
(fta.getFile().getName());
zos.putNextEntry(fta.getZipParameters());
try(InputStream is =
new FileInputStream(fta.getFile())){
is.transferTo(zos);
}
zos.closeEntry();
}
}
}
}
class FilesToAdd{
private File file;
private ZipParameters zp;
FilesToAdd(File file, ZipParameters zp){
this.file = file;
this.zp = zp;
}
ZipParameters getZipParameters(){
return zp;
}
File getFile(){
return file;
}
}