import java.io.*;
import java.util.*;
import java.util.zip.*;
public class MyZipFile
{
public static final int BUFFERSIZE=1024;
//压缩单个文件
/**
* zipFileName 解压后的的压缩文件名(包含路径)
* fileName 需要压缩的文件名 (包含路径)
* e.g. zipFile("E:/test.zip","E:/test.jpg");
*/
/*public static boolean zipFile(String zipFileName,String fileName) throws IOException
{
boolean flag=false;
byte[] b=new byte[1024];
int len=0;
File file=new File(fileName);
File zipFile=new File(zipFileName);
BufferedInputStream bis=new BufferedInputStream(new FileInputStream(file));
ZipOutputStream zos=new ZipOutputStream(
new BufferedOutputStream(
new FileOutputStream(zipFile)));
ZipEntry ze=new ZipEntry(file.getName());
zos.putNextEntry(ze);
while((len=bis.read(b))!=-1)
{
zos.write(b,0, len);
zos.flush();
}
bis.close();
zos.close();
flag=true;
return flag;
}*/
/*
* 该函数是压缩文件的实现函数,采用递归调用
* ZipOutputStream zos 压缩文件输出流
* File file 需要压缩的文件
* String zipEntryFile 文件在压缩包中的全路径名
*/
public static boolean zipFile(ZipOutputStream zos,File file,String zipEntryFile) throws IOException
{
boolean flag=false;
byte[] b=new byte[BUFFERSIZE];
int len=0;
BufferedInputStream bis=null;
//如果是目录,递归调用
if(file.isDirectory())
{
File[] files=file.listFiles();
for(File f:files)
zipFile(zos,f,zipEntryFile+File.separator+f.getName());
}
else
{
ZipEntry ze=new ZipEntry(zipEntryFile);
zos.putNextEntry(ze);
try
{
bis=new BufferedInputStream(new FileInputStream(file));
while((len=bis.read(b))!=-1)
{
zos.write(b,0, len);
zos.flush();
}
}
catch(IOException ex)
{
throw ex;
}
finally
{
bis.close();
}
}
flag=true;
return flag;
}
/**
* 压缩整个文件夹
* 压缩整个文件夹的处理方式和压缩当个文件类似,可以采用递归调用
*
*/
public static boolean zipFile(String zipFileName,String fileName) throws IOException
{
boolean flag=false;
ZipOutputStream zos=null;
try
{
//定义压缩流
File zipFile=new File(zipFileName);
zos=new ZipOutputStream(
new BufferedOutputStream(new FileOutputStream(zipFile)));
//定义文件对象
File file=new File(fileName);
flag=zipFile(zos,file,file.getName());
}
catch(IOException ex)
{
throw ex;
}
finally
{
zos.close();
}
return flag;
}
public static void main(String[] args)
{
try
{
boolean flag=zipFile("E:/test.zip","E:/test");
System.out.println("Compress "+(flag?"OK":"Failed"));
}
catch(IOException ex)
{
ex.printStackTrace();
}
}
}
分享到:
相关推荐
java压缩文件的程序代码,可以压缩单个文件夹,单个标准文件,多个标准文件 多个文件夹,以及文件夹和文件混合的压缩代码
java代码实现单个或多个文件压缩成rar包,本地要安装winRar插件。
// 设置压缩文件入口entry,为被读取的文件创建压缩条目 File tempFile = new File(fileArray[i].toString()); String rootStr = file.getPath(); String entryStr = null; // entry以相对路径的...
* @param src 要压缩的文件或文件夹路径 * @param dest 压缩文件存放路径 * @param isCreateDir 是否在压缩文件里创建目录,仅在压缩文件为目录时有效. * 如果为false,将直接压缩目录下文件到压缩文件. * ...
当解压合并结束后,程序将PROVINCE_DIR路径下的文件移动到DONE_FILE_PATH下,并且删除PROVINCE_DIR跟UN_ZIP_PATH下文件,这样保证程序每次运行PROVINCE_DIR文件夹下的文件跟UN_ZIP_PATH下的文件都是最新未处理过的,...
本文将介绍Java中利用线程池递归的方式压缩文件夹下面的所有子文件,具体方法如下: Gzip单个文件压缩 对于单个文件使用GZip压缩。 package date0805.demo1; import java.io.BufferedInputStream; ...
一、文件压缩,是很有必要的,我们在进行文件,传输过程中,很多时候都是,都是单个文件单个文件发送接收,但是当数据量特别大,或者文件数量比较多的时候,这个时候就可以考虑文件压缩。 二、优势:文件压缩过后,...
目前网上能够搜索到的资料对于单个文件和文本文件的压缩与解压较多,而对文件夹与大文件的压缩与解压较少。所以想在这里把自己的一些想法和思路写下来,供大家交流与参考。因为自己目前正在读大二,这也是自己写的第...
在工作过程中,需要将一个文件夹生成压缩文件,然后提供给用户下载。写了一个压缩文件的工具类。该工具类支持单个文件和文件夹压缩
您可以通过将JavaScript中的DroidZip接口和对象ZipHTML5Hybrid直接添加到Android的WebView组件来压缩单个文件和文件夹。 为了在Java WebView中使用界面,您需要在HTML文件中包含著名JavaScript库JSZip MIT许可证。
由于CSDN单个文件又不能超过60M,又不能1次上传6个文件,,所以只好压缩成6个包,上传6次,在CSDN内搜索“java安装包(eclipse).part2”“java安装包(eclipse).part3”“java安装包(eclipse).part4”“java...
FTP服务器单个文件下载,FTP服务器多文件打包下载。
Android端zip压缩与解压,目前暂时只做zip格式支持,基于Zip4j (http://www.lingala.net/zip4j/)进行扩展成工具类,支持对单个文件,多个文件以及文件夹进行压缩,对压缩文件解压到到指定目录,支持压缩解压使用密码...
直接进入lib文件夹: 源文件:commons-fileupload-...源应该是压缩存档、文件夹或单个文件的路径。目标将在指定路径创建为与源相同类型的资源。 参考说明地址:https://github.com/apache/tomcat-jakartaee-migration
类转成java源码JavaPresso的 是否曾经想摆脱具有许多Java类的许多文件,而只将一个文件复制到您的项目中...,以及位于/src/mylibrary/文件夹中的相应文件A.java , B.java和C.java 。 运行命令java -jar JavaPresso.jar
本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...
非常适合初学者 下面是整个过程的步骤表格: 步骤 描述 1 安装Java开发环境 2 下载并安装IDE(推荐使用IntelliJ IDEA) ...解压缩后,将源码文件夹导入到你的Java项目中。 步骤5:阅读源码并理解每个示例的功能
JAR:Java档案文件(一种用于applet和相关文件的压缩文件) JAVA:Java源文件 JFF,JFIF,JIF:JPEG文件 JPE,JPEG,JPG:JPEG图形文件 JS:javascript源文件 JSP:HTML网页,其中包含有对一个Java servlet...