java实现将多个文件打包成zip压缩文件以及对压缩文件的加密

如果仅仅需要对文件进行压缩,方法比较简单,因为java的util包中提供了相关的压缩方法.

首先,引入java.util.zip.ZipEntry,java.util.zip.ZipOutputStream包

然后加入以下代码:

String now = StringUtils.dateToString(new Date());
String path = request.getServletPath();
path = request.getRealPath(path);
path = path.substring(0,path.lastIndexOf("\\"))+"\\";
File zipFile = new File(path+"edm_expcsv\\"+"EDM_expcsv_"+now+".zip"); //压缩的文件名和地址 

ZipOutputStream out2 = new ZipOutputStream(new FileOutputStream(zipFile));//传入压缩文件路径,得到压缩流

 byte[] buffer = new byte[1024];
 File[] file1 = {new File(path+file),new File(path+file2)};
for(int x=0;x<file1.length;x++) {
 FileInputStream fis = new FileInputStream(file1[x]);
out2.putNextEntry(new ZipEntry(file1[x].getName()));//将要压缩的文件放入压缩流
  int len;
//读入需要下载的文件的内容,打包到zip文件
  while((len = fis.read(buffer))>0) {
 out2.write(buffer,0,len);
  }
 out2.closeEntry();
 fis.close();
}
out2.close();


如果是要对文件压缩并加密,则使用下面的方法,但是值支持单个文件压缩

先将ant.jar commons-io.jar EncryptZip.jar EncryptZip.jar winzip.1.1.0.jar

5文件放到lib包中
然后在头文件import中加入String,java.io.File,de.idyl.winzipaes.AesZipFileEncrypter,de.idyl.winzipaes.impl.AESEncrypterBC
然后加入代码
File file = newFile(s); //定义压缩文件的路径
File zipFile = new File(b + "\\demo.zip");//压缩的文件名和地址
AESEncrypterBC bc = new AESEncrypterBC();
AesZipFileEncrypter azfe = new AesZipFileEncrypter(zipFile, bc);
azfe.setEncoding("UTF-8"); // 编码格式是在这传进去的
azfe.add(file,"123.jpg", "123"); //1:要压缩的文件路径,2:为压缩的文件命名3:为密码
azfe.close();


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Gradle是一款强大的构建工具,可以自动化构建、编译和测试Java项目,它支持多种编程语言和平台。然而,当我们将Gradle项目打包Jar文件时,有时候需要把Jar文件压缩RAR格式,以便更好地进行分发和存储。 下面是使用Gradle实现RAR压缩的方法: 第一步:在build.gradle文件中添加以下依赖: ```java dependencies { compile group: 'org.apache.commons', name: 'commons-compress', version: '1.19' } ``` 第二步:在build.gradle文件中添加以下代码: ```java task compress(type: Zip) { from('build/libs') //指定要压缩文件夹位置 include '*.jar' //压缩所有以.jar结尾的文件 destinationDir file("build/distributions") //指定压缩后的文件存放路径 archiveName "myApp.rar" //指定压缩后的文件名 //如果需要对文件进行加密,可以添加以下代码 inputs.property "password", <your-password> inputs.property "encryptionMethod", "AES256" doLast { def compress = CompressorStreamFactory.getCompressor("rar").createCompressor(outputStream()) compress.setPassword(project.property("password")) compress.setEncryptionMethod(project.property("encryptionMethod")) fileTree(dir: buildDir, include: ["distributions/**/${archiveName}"]).visit { compress.addArchiveEntry(it, it.relativePath.pathString) } compress.close() } } ``` 第三步:在终端运行以下命令,执行RAR压缩任务: ```bash gradle compress ``` 这样就可以轻松地使用Gradle将Jar文件压缩RAR格式了。需要注意的是,如果需要在压缩时对文件进行加密,请确保输入正确的密码和加密方式。 ### 回答2: Gradle是一个非常流行的自动化构建工具,用于构建Java、Kotlin和Android项目。在Gradle构建中,有时需要使用RAR文件进行压缩,以便文件更加紧凑和管理。下面是使用Gradle实现RAR文件压缩的方法: 首先,需要在Gradle构建文件中引入Ant插件: ``` buildscript { repositories { jcenter() } dependencies { classpath 'org.apache.ant:ant:1.10.7' } } apply plugin: 'java' apply plugin: 'war' task rar(type: Zip) { baseName = 'test' extension = 'rar' from 'src/main/resources' } ``` 接着,可以定义一个task(任务)来执行RAR文件压缩操作。可以使用Gradle的Zip任务,结合Ant的Zip和Rar任务来完RAR文件的创建和压缩。 在上面的代码示例中,定义了一个名为rar的任务来执行RAR文件压缩,任务类型为Zip。通过设置baseName和extension属性,指定要创建和压缩的RAR文件的名称和扩展名。使用from函数来指定要压缩文件夹文件。最后执行gradlew rar命令,就可以生压缩指定文件夹文件。 总之,使用Gradle实现RAR文件压缩非常简单,只需要结合Ant插件,设置任务的属性和源文件,就可以完压缩和创建RAR文件的整个过程。 ### 回答3: Gradle是一个基于Java的开源项目自动化构建工具,可以自动化执行很多任务,例如编译、测试、打包等。同时,Gradle也支持RAR文件压缩和解压,方便用户在打包发布的过程中进行文件压缩。 Gradle使用RAR文件进行压缩的方法有两种:通过Gradle插件实现RAR压缩和解压,或者通过Gradle的任务实现RAR文件压缩。 首先,要使用Gradle插件实现RAR压缩和解压,需要在build.gradle文件中添加如下代码: ``` plugins { id 'de.eiswind.racoon' version '6.0.1' } racoon { compression 'rar' password 'yourpassword' archiveName 'yourfilename' } task rar(type: de.eiswind.racoon.RacoonTask) { // your task action into 'dir/of/your/files' } ``` 其中,id 'de.eiswind.racoon' version '6.0.1'表示添加RAR压缩插件,compression 'rar'表示压缩格式为RAR,password 'yourpassword'表示RAR文件的密码,archiveName 'yourfilename'表示压缩后的文件名。task rar用于执行RAR文件压缩的任务。into 'dir/of/your/files'表示压缩文件目录。 如果不想使用插件,可以通过Gradle任务实现RAR文件压缩和解压。可以使用Java中的WinRAR命令来进行RAR文件的解压和压缩。在build.gradle文件中添加如下代码: ``` task compressFiles(type: Exec) { commandLine 'winrar', 'a', '-ep1', 'target.rar', 'sourceFiles' } ``` 其中,commandLine 'winrar', 'a', '-ep1', 'target.rar', 'sourceFiles'表示执行WinRAR命令生RAR文件,-ep1表示不包含源文件路径,'target.rar'表示生的RAR文件名,'sourceFiles'表示需要压缩文件路径。 综上所述,Gradle可以通过插件和任务来进行RAR文件压缩和解压,便于用户在项目开发中进行文件压缩打包
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值