get paid to paste

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;
  }
  
}

Pasted: 3 weeks ago
Views: 10