`

java向压缩文件添加文件

    博客分类:
  • Java
阅读更多
package org.alfresco.repo.bom.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.zip.Deflater;

import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
import org.apache.tools.zip.ZipOutputStream;

public class AppendFileToCompressedFileUtil {
	
	private static final String compressedFilePath = "F:/chiang.zip";
	private static final String newCompressedFilePath = "F:/tdp.zip";
	private static final String appendFilePackage = "data";
	
	public void append(String appendFile) throws Exception{
		ZipOutputStream zos = null;
		InputStream input = null;
		File newCompressedFile = new File(newCompressedFilePath); 
		if (newCompressedFile.exists()) { 
			newCompressedFile.delete(); 
		}
		try {
			ZipFile compressedFile = new ZipFile(compressedFilePath, "GBK");
			//System.out.println(compressedFile.getEncoding());
			zos = new ZipOutputStream(new FileOutputStream(newCompressedFilePath));
			zos.setEncoding("GBK");
			zos.setComment("Bale tdp!");
			zos.setLevel(Deflater.BEST_COMPRESSION);
			zos.setMethod(Deflater.DEFLATED);
			//
			if (!"".equals(appendFile)) {
				File f = new File(appendFile);
				ZipEntry pag = new ZipEntry(appendFilePackage+f.separator);
				zos.putNextEntry(pag);
				ZipEntry fileEntry = new ZipEntry(appendFilePackage+f.separator+f.getName());
				zos.putNextEntry(fileEntry);
				input = new FileInputStream(f);
				startCopy(zos, input);
			}
			Enumeration<? extends ZipEntry> e = compressedFile.getEntries();
			while (e.hasMoreElements()) {
				ZipEntry entry = e.nextElement();
				zos.putNextEntry(entry);
				if (!entry.isDirectory()) {
					startCopy(zos, compressedFile.getInputStream(entry));
				}
				zos.closeEntry();
			}
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(zos!=null)
				zos.close();
		}
	}
	
	public void startCopy(ZipOutputStream zos,InputStream input) throws Exception{
		int data = 0 ;
		try {
			while ((data=input.read())!=-1) {
				zos.write(data);
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(input!=null)
				input.close();
		}
	}
	// main test method
	public static void main(String[] args) throws Exception{
		AppendFileToCompressedFileUtil a = new AppendFileToCompressedFileUtil();
		String append = "F:/你现在好吗.txt";
		a.append(append);
	}
}

 

分享到:
评论

相关推荐

    基于Java向zip压缩包追加文件

    主要介绍了基于Java向zip压缩包追加文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    JAVA实现对文件夹“加密码压缩”

    (压缩后为Zip文件) 无需导入任何个人jar包 压缩后效果等同于用winrar给压缩包加密码 时间紧迫,暂时存在中文文件夹名称乱码问题 不影响文件夹内各类型文件内容 实现方法见功能说明txt文档,只需传入文件夹路径...

    Java毕业设计-JAVA文件压缩与解压缩实践(源代码+论文).rar

    **JAVA文件压缩与解压缩实践** 本项目为Java毕业设计作品,提供完整的源代码及详细论文。内容聚焦于Java文件压缩与解压缩功能的实现,采用高效、便捷的算法,支持多种常见的文件格式。项目结构清晰,注释充分,易于...

    Java实现批量下载并压缩文件.pptx.pptx

    下载文件的基本原理 Java中的文件下载是通过...使用Java压缩多个文件为zip包 Java中可以使用ZipOutputStream类将多个文件压缩成一个zip包,首先创建ZipOutputStream对象,然后逐个添加需要压缩的文件,最后关闭流即可。

    Java实现将多目录多层级文件打成ZIP包,以及解压ZIP包

    包含了使用的jar包,以及一个Java类,实现了使用Java对多目录多层级的文件进行打包,以及对ZIP包进行解压缩的操作。

    zip4j--Java操作zip压缩文件接口

    Java操作zip压缩格式的开源项目,功能强大而且使用方便,能完全满足Java操作Zip压缩文件,官方网址为:http://www.lingala.net/zip4j/ 可以下载到jar包、源码和示例,好像没有提供API文档。 不过需要使用代理访问...

    qt调用JAVA文件示例

    本示例主要演示在QT开发android APP时,怎样通用调用JAVA文件,实现android原生操作

    Java解压缩ZIP文件同时包含Jar包解决ZIP包中含有中文名称信息的文件

    博文链接:https://peng-jian-ming.iteye.com/blog/190572

    zip压缩java工具类包含jar文件

    zip压缩以及解压工具类,本人纯手打。其中包括zip所需要的jar 文件,copy到项目中可直接运行,以及工具类添加注释

    java解压缩工具程序

    本代码是一个简单的解压缩工具,其可以实现将文件压缩成压缩文件,也可解压缩(此功能与压缩类似,本人并没有完成)。其中实现了JList的添加图标的selection还实现了将文件夹中的所有文件压缩的递归算法。请尝试。...

    zip4j_1.3.2 - Java操作zip压缩文件接口最新版本

    针对ZIP压缩文件创建、添加、抽出、更新和移除文件&#41; Read/Write password protected Zip files (读写有密码保护的Zip文件) Supports AES 128/256 Encryption (支持AES 128/256算法加密) Supports ...

    ZIP格式压缩/解压系统设计(JAVA)

    通过设计,允许创建ZIP压缩文件,并对ZIP压缩文件中包含的文件进行显示、添加、解压、删除等操作。GUI界面与下图类似: 【实验目的】 要求学生能熟练使用基于Swing的GUI设计,熟练使用常用组件和容器,理解java事件...

    java源码包---java 源码 大量 实例

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...

    JavaFileZipper:提供GUI界面的Java程序。 指定您要压缩的文件,也要压缩文件的位置以及文件名

    JavaFileZipper 提供GUI界面的Java程序。 指定要压缩的文件,也要压缩文件的位置以及文件名。

    JAVA上百实例源码以及开源项目

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...

    java源码包4

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...

    java源码包3

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...

    Java连接MySQL数据库的驱动.zip

    Java连接MySQL数据库驱动-JDBC

    java14的完整压缩包,不是exe执行文件,解压完配置环境直接可以跑java代码,内置简易教程,保证没有问题

    将下载好的jdk解压,然后通过配置系统环境变量指向该文件即可 系统环境变量配置过程如下: 右击我的电脑(计算机)——属性——高级系统设置 第一步:新建JAVA_HOME变量。点击新建弹出新建系统变量对话框,变量名:...

    java源码包2

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...

Global site tag (gtag.js) - Google Analytics