189 8069 5689

Java代码打包zip,java代码打包成应用程序

如何使用java压缩文件夹成为zip包

在JDK中有一个zip工具类:

专注于为中小企业提供成都网站设计、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业加查免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

java.util.zip    Provides classes for reading and writing the standard ZIP and

GZIP file formats.

使用此类可以将文件夹或者多个文件进行打包压缩操作。

在使用之前先了解关键方法:

ZipEntry(String name)         Creates a new zip entry with the specified name.

使用ZipEntry的构造方法可以创建一个zip压缩文件包的实例,然后通过ZipOutputStream将待压缩的文件以流的形式写进该压缩包中。具体实现代码如下:

import java.io.BufferedInputStream;  

import java.io.BufferedOutputStream;  

import java.io.File;  

import java.io.FileInputStream;  

import java.io.FileNotFoundException;  

import java.io.FileOutputStream;  

import java.io.IOException;  

import java.util.zip.ZipEntry;  

import java.util.zip.ZipOutputStream;  

/** 

* 将文件夹下面的文件 

* 打包成zip压缩文件 

*  

* @author admin 

*/  

public final class FileToZip {  

private FileToZip(){}  

/** 

* 将存放在sourceFilePath目录下的源文件,打包成fileName名称的zip文件,并存放到zipFilePath路径下 

* @param sourceFilePath :待压缩的文件路径 

* @param zipFilePath :压缩后存放路径 

* @param fileName :压缩后文件的名称 

* @return 

*/  

public static boolean fileToZip(String sourceFilePath,String zipFilePath,String fileName){  

boolean flag = false;  

File sourceFile = new File(sourceFilePath);  

FileInputStream fis = null;  

BufferedInputStream bis = null;  

FileOutputStream fos = null;  

ZipOutputStream zos = null;  

if(sourceFile.exists() == false){  

System.out.println("待压缩的文件目录:"+sourceFilePath+"不存在.");  

}else{  

try {  

File zipFile = new File(zipFilePath + "/" + fileName +".zip");  

if(zipFile.exists()){  

System.out.println(zipFilePath + "目录下存在名字为:" + fileName +".zip" +"打包文件.");  

}else{  

File[] sourceFiles = sourceFile.listFiles();  

if(null == sourceFiles || sourceFiles.length1){  

System.out.println("待压缩的文件目录:" + sourceFilePath + "里面不存在文件,无需压缩.");  

}else{  

fos = new FileOutputStream(zipFile);  

zos = new ZipOutputStream(new BufferedOutputStream(fos));  

byte[] bufs = new byte[1024*10];  

for(int i=0;isourceFiles.length;i++){  

//创建ZIP实体,并添加进压缩包  

ZipEntry zipEntry = new ZipEntry(sourceFiles[i].getName());  

zos.putNextEntry(zipEntry);  

//读取待压缩的文件并写进压缩包里  

fis = new FileInputStream(sourceFiles[i]);  

bis = new BufferedInputStream(fis, 1024*10);  

int read = 0;  

while((read=bis.read(bufs, 0, 1024*10)) != -1){  

zos.write(bufs,0,read);  

}  

}  

flag = true;  

}  

}  

} catch (FileNotFoundException e) {  

e.printStackTrace();  

throw new RuntimeException(e);  

} catch (IOException e) {  

e.printStackTrace();  

throw new RuntimeException(e);  

} finally{  

//关闭流  

try {  

if(null != bis) bis.close();  

if(null != zos) zos.close();  

} catch (IOException e) {  

e.printStackTrace();  

throw new RuntimeException(e);  

}  

}  

}  

return flag;  

}  

public static void main(String[] args){  

String sourceFilePath = "D:\\TestFile";  

String zipFilePath = "D:\\tmp";  

String fileName = "12700153file";  

boolean flag = FileToZip.fileToZip(sourceFilePath, zipFilePath, fileName);  

if(flag){  

System.out.println("文件打包成功!");  

}else{  

System.out.println("文件打包失败!");  

}  

}  

}

java 如何将多个文件打包成一个zip

java 将多个文件打包成一个zip的代码如下:

ZipOutputStream out=new ZipOutputStream(new FileOutputStream(zipFileName));

for(int i=0;ifileList.size();i++){

String filename = (String)fileList.get(i);

File file = new File(filename);

zip(out,file);

}

out.close();

如何使用java压缩文件夹成为zip包(最简单的

import java.io.File;

public class ZipCompressorByAnt {

private File zipFile;

/**

* 压缩文件构造函数

* @param pathName 最终压缩生成的压缩文件:目录+压缩文件名.zip

*/

public ZipCompressorByAnt(String finalFile) {

zipFile = new File(finalFile);

}

/**

* 执行压缩操作

* @param srcPathName 需要被压缩的文件/文件夹

*/

public void compressExe(String srcPathName) {

System.out.println("srcPathName="+srcPathName);

File srcdir = new File(srcPathName);

if (!srcdir.exists()){

throw new RuntimeException(srcPathName + "不存在!");

}

Project prj = new Project();

Zip zip = new Zip();

zip.setProject(prj);

zip.setDestFile(zipFile);

FileSet fileSet = new FileSet();

fileSet.setProject(prj);

fileSet.setDir(srcdir);

//fileSet.setIncludes("**/*.java"); //包括哪些文件或文件夹 eg:zip.setIncludes("*.java");

//fileSet.setExcludes(...); //排除哪些文件或文件夹

zip.addFileset(fileSet);

zip.execute();

}    

}

public class TestZip {

public static void main(String[] args) {

ZipCompressorByAnt zca = new ZipCompressorByAnt("E:\\test1.zip ");

zca.compressExe("E:\\test1");

}  

}

/*如果 出现ant 的 52  51 50 等版本问题 可以去找对应的ant-1.8.2.jar     我开始用的ant-1.10.1.jar 就是这个包版本高了  一直报verson 52 版本问题*/


文章名称:Java代码打包zip,java代码打包成应用程序
分享URL:http://cdxtjz.cn/article/hochpe.html

其他资讯