java实现文件目录压缩

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.util.zip.ZipEntry;

import java.util.zip.ZipOutputStream;

public class MyZip {

private static void zip(File zipFile,File sourceFile) throws Exception{

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

process(out,sourceFile,"");

out.close();

}

/**

* 递归形式写入zip文件

* @param zipOutputStream
zip输出流

* @param sourceFile
源文件

* @param base
父级路径

* @throws Exception

*/

private static void process(ZipOutputStream zipOutputStream,File sourceFile,String base) throws Exception{

if(sourceFile.isDirectory()){

File[] fl=sourceFile.listFiles();

zipOutputStream.putNextEntry(new ZipEntry(base+sourceFile.getName()+"/"));

base=base+sourceFile.getName()+"/";

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

process(zipOutputStream,fl[i],base);

}

}else{

zipOutputStream.putNextEntry(new ZipEntry(base+sourceFile.getName()));

FileInputStream in=new FileInputStream(sourceFile);

zipOutputStream.setComment("www.mldnjava.cn");

int b;

while((b=in.read())!=-1){

zipOutputStream.write(b);

}

in.close();

}

}

public static void main(String[] args) throws Exception {

MyZip.zip(new File("e:" +File.separator + "HelloJava.zip"),new File( "e:" + File.separator + "HelloJava.java"));

}

}

时间: 2024-08-09 06:34:55

java实现文件目录压缩的相关文章

Java打包文件目录问 zip文件

Java打包文件目录问 zip文件. /** * 资源打包下载类 * Created by Ruan Banshu on 2015/4/13. */ public class ZipOpUtil { private static Logger logger = LoggerFactory.getLogger(ZipOpUtil.class); /** * 将多个文件打包到一个zip中 * * @param sourceFolder * @param zipFile * @return */ pu

java基础----&gt;Zip压缩的使用(转)

java中提供了对压缩格式的数据流的读写.它们封装到现成的IO 类中,以提供压缩功能.下面我们开始java中压缩文件的使用. 目录导航: 关于压缩的简要说明 GZIP压缩文件的使用 ZIP压缩文件的使用 GZIP与ZIP压缩的比较 友情链接 关于压缩的简要说明 一. Java中有着压缩的类: CheckedInputStream GetCheckSum()为任何InputStream 产生校验和(不仅是解压) CheckedOutputStream GetCheckSum()为任何OutputS

记性不如烂笔头33-利用java过滤器实现压缩响应正文内容

在前面的Response的相关内容中,就提到了把数据压缩然后传到浏览器上,通过压缩,能够提升网络文件的传输效率,在很多的场所都需要实用. 如果我们需要在所有的页面都实现压缩,那么是不是把这个加在某一个地方就一起解决了呢?貌似我们能够在过滤器中加载很多的内容,那么是不是也可以把这个也加在过滤器中呢?答案是可以的. 我们可以通过增强HttpServletResponseWrapper对象,压缩响应正文内容. 1. 原理 通过过滤器filter向目标页面传递一个自定义的response对象.在自定义的

java实现图片压缩

java实现图片压缩 package Test; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import javax.imageio.ImageIO; import com.sun.image.

Java使用Zip压缩文件或整个目录

1.压缩文件或整个目录 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import java.util.zip.ZipEntry

java.util.zip压缩打包文件总结二: ZIP解压技术

一.简述 解压技术和压缩技术正好相反,解压技术要用到的类:由ZipInputStream通过read方法对数据解压,同时需要通过CheckedInputStream设置冗余校验码,如: CheckedInputStream cis = new CheckedInputStream(new FileInputStream( srcFile), new CRC32()); ZipInputStream zis = new ZipInputStream(cis); 需要注意的是,在构建解压文件时,需要

用java实现zip压缩

本来是写到spaces live上的,可是代码的显示效果确实不怎么好看.在javaeye上试了试代码显示的顺眼多了. 今天写了个用java压缩的功能,可以实现对文件和目录的压缩. 由于java.util.zip.ZipOutputStream有中文乱码问题,所以采用org.apache.tools.zip.ZipOutputStream. 以下是代码: Java代码   package net.szh.zip; import java.io.BufferedInputStream; import

Java实现文件压缩与解压[zip格式,gzip格式]

Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个文件和任意级联文件夹进行压缩和解压,对于一些初学者来说是个很不错的实例. zip扮演着归档和压缩两个角色:gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩. Java I/O类库还收录了一些能读写压缩格式流的类.要想提供压缩功能,只要把它们包在已有的I/O类的外面就行了.这些类不是Reader和Writer,而是Inpu

java下实现压缩数据存取

使用Apache Commons Compress实现压缩数据存取,支持格式有XZ,7z,tar,zip,jar,bzip2,gzip等. 例子在 https://commons.apache.org/compress/examples.html 而java se包含gzip功能. InputStream is = new GZIPInputStream(new FileInputStream(file));