代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
java实现指定文件或目录的zip压缩
作者:
Atlas_qf
/ 发布于
2013/8/5
/
1017
package net.szh.zip; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FilterInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.SequenceInputStream; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import java.util.zip.CRC32; import java.util.zip.CheckedOutputStream; import java.util.zip.Checksum; //import javax.rmi.CORBA.Util; //import java.util.zip.ZipEntry; //import java.util.zip.ZipOutputStream; import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipOutputStream; import org.apache.tools.zip.ZipFile; public class ZipCompress { static final int BUFFER = 8192; private File zipFile; public ZipCompress(String pathName) { zipFile = new File(pathName); } public void Compress(String srcPathName) { File file = new File(srcPathName); if (!file.exists()) { throw new RuntimeException(srcPathName + "不存在"); } try { FileOutputStream fos = new FileOutputStream(zipFile); CheckedOutputStream cos = new CheckedOutputStream(fos, new CRC32()); ZipOutputStream zos =new ZipOutputStream(cos); BufferedOutputStream bos = new BufferedOutputStream(zos); ArrayList<String> list=new ArrayList<String>(); list.add("d:/安装系统.exe"); list.add("d:/FeiQ.exe"); list.add("e:/jk.txt");//添加你要压缩的文件目录 for(String string:list){ BufferedReader in = new BufferedReader(new FileReader(string)); int i=0; zos.putNextEntry(new ZipEntry(string)); while((i=in.read())!=-1){ zos.write(i); } zos.flush(); in.close(); } String basedir = ""; Compress(file, zos, basedir); zos.close(); } catch (Exception e) { throw new RuntimeException(e); } } private void Compress(File file, ZipOutputStream zos, String basedir) { if (file.isDirectory()) { System.out.println("压缩" + basedir + file.getName()+"成功"); this.CompressDirectory(file, zos, basedir); } else { System.out.println("压缩" + basedir + file.getName()+"成功"); this.CompressFile(file, zos, basedir); } } private void CompressDirectory(File dir, ZipOutputStream zos, String basedir) { if (!dir.exists()) { return; } File[] files = dir.listFiles(); for (int i = 0; i < files[i].length(); i++) { Compress(files[i], zos, basedir + dir.getName() + "/"); } } private void CompressFile(File file, ZipOutputStream out, String basedir) { if (!file.exists()) { return; } try { BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); ZipEntry ze = new ZipEntry(basedir + file.getName()); out.putNextEntry(ze); int count; byte[] data = new byte[BUFFER]; while ((count = bis.read(data, 0, BUFFER)) != -1) { out.write(data, 0, BUFFER); } bis.close(); } catch (Exception e) { throw new RuntimeException(e); } } public static void main(String args[]) { ZipCompress zc = new ZipCompress("d:/java.zip"); zc.Compress("d:/"); System.out.println("OK/......"); } } //public class ZipCompress{ // public static void main(String args[]) throws IOException{ // File f1 = new File("d:/jk.txt"); // File f2 = new File("d:/kj.txt"); // File f3 = new File("d:/jj.txt"); // FileInputStream fis = new FileInputStream(f1); // FileInputStream fis1 = new FileInputStream(f2); // // InputStream sis = new SequenceInputStream(fis, fis1); // // InputStreamReader isr = new InputStreamReader(sis); // // FileOutputStream fos = new FileOutputStream(f3, true); // // OutputStreamWriter osw = new OutputStreamWriter(fos); // // int c; // while((c=isr.read())!=-1){ // osw.write((char)c); // } // System.out.println("ok...."); // isr.close(); // osw.close(); // // } //} /** 两个文件内容汇总到另外一个文件中*/
试试其它关键字
指定文件
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
实现测量程序运行时间及cpu使用时间
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
Atlas_qf
贡献的其它代码
(
3
)
.
java实现指定文件或目录的zip压缩
.
java将两个文件内容合并到第三个文件中
.
oracle数据库连接
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3