deflate and inflate simple demo (ZipInputStream/ZipOutputStream)

来源:互联网 发布:网络主播幕后团队 编辑:程序博客网 时间:2024/05/19 11:46
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.zip.Adler32;import java.util.zip.CheckedInputStream;import java.util.zip.CheckedOutputStream;import java.util.zip.Checksum;import java.util.zip.ZipEntry;import java.util.zip.ZipInputStream;import java.util.zip.ZipOutputStream;public class DeflateUtil {/** *  * @param source待压缩文件的路径 * @param target产出的压缩文件的文件名 * @return * @throws Exception */public static Checksum deflate(String[] source,String target) throws Exception{FileOutputStream fos = new FileOutputStream(target);CheckedOutputStream csum = new CheckedOutputStream(fos,new Adler32());ZipOutputStream zos = new ZipOutputStream(csum);BufferedOutputStream out = new BufferedOutputStream(zos);for(String filename:source){File file = new File(filename);FileInputStream in = new FileInputStream(file);zos.putNextEntry(new ZipEntry(file.getName()));byte[] buffer = new byte[1024*100];int len = -1;while( (len =  in.read(buffer) ) != -1){out.write(buffer,0,len);}in.close();out.flush();}out.close();return csum.getChecksum();}/** *  * @param source待解压文件路径 * @param path解压到这个路径下 * @return * @throws Exception */public static Checksum inflate(String source,String path) throws Exception{FileInputStream fis = new FileInputStream(source);CheckedInputStream csum = new CheckedInputStream(fis,new Adler32());ZipInputStream zis = new ZipInputStream(csum);BufferedInputStream in = new BufferedInputStream(zis);ZipEntry ze = null;while((ze = zis.getNextEntry()) != null){FileOutputStream out = new FileOutputStream(path+"\\"+ze.getName());byte[] buffer = new byte[1024 * 100];int len = -1;while( ( len = in.read(buffer) ) != -1 ){out.write(buffer, 0, len);}out.close();}in.close();return csum.getChecksum();}}


原创粉丝点击