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.util.zip`包)并不直接支持追加到已存在的ZIP文件。本篇文章将深入探讨如何实现这个功能,主要关注...
### Java将文件压缩为ZIP的方法 #### 知识点概览 本文主要介绍如何使用Java实现文件的ZIP压缩功能,并提供了完整的代码示例。通过学习本文,你可以掌握以下几个知识点: 1. 使用`java.util.zip`包中的类进行文件...
zipEntry.setComment("压缩文件"); // 可以添加注释,同样需要指定字符集 zos.putNextEntry(zipEntry); try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file))) { byte[] buffer...
要在Java中处理RAR格式的压缩文件,由于Java标准库不直接支持RAR格式,我们需要引入第三方库。一个常用的库是`com.igormaznitsa:nativesharp-jni`,它封装了WinRAR的API,使得Java可以调用WinRAR的功能。安装该库后...
本文将深入探讨如何使用Java来处理压缩文件,特别是针对标题提及的“java压缩文件以及文件夹”。我们将主要关注`ZipCompressor.java`这个类,它是实现文件和文件夹压缩的核心工具。 首先,让我们了解`java.util.zip...
2. **添加文件到ZIP**:对于每个要压缩的文件,创建一个`ZipEntry`,设置其名称,并使用`ZipOutputStream`的`putNextEntry`方法开始一个新的ZIP条目。接着,读取源文件内容并写入`ZipOutputStream`。 ```java File ...
本实践主要关注如何使用Java来处理ZIP格式的压缩文件,以下将详细介绍相关知识点。 1. **Java档案API(Java Archive API, JAR)** Java标准库提供了一个强大的API来处理各种类型的档案文件,包括ZIP格式。`java....
Java文件压缩源码是Java开发中常见的需求,它允许开发者将多个文件或目录打包成一个压缩文件,方便存储和传输。在本例中,我们提到的实现方式是通过使用Apache Ant库中的`org.apache.tools.ant.taskdefs.Zip`类。...
在Java编程语言中,处理压缩文件(如ZIP或GZ格式)是一项常见的任务。本示例将探讨如何使用Java API来实现文件的压缩和解压缩功能。提供的压缩包包含三个文件:ant.jar(一个用于构建工具的库)、ZipFileList.java...
在提供的压缩包子文件"java-视频压缩"中,可能包含了实现上述步骤的源代码、示例或者相关的第三方库。通过研究这些文件,开发者可以学习如何在Java环境中实现视频压缩的完整流程,并根据需求进行定制和优化。 总之...
2. **压缩文件**: 使用`ZipOutputStream`,你可以将文件或目录添加到ZIP文件中。首先,创建一个`ZipOutputStream`实例,然后通过调用`putNextEntry`方法开始新的`ZipEntry`,接着使用`write`方法写入文件数据,最后...
Java 实现批量下载并压缩文件是一项常见的任务,尤其在处理大量数据存储时。在这个过程中,主要涉及以下几个关键知识点: 1. **文件下载**:在Java中,文件下载通常基于网络I/O流,通过发送HTTP请求获取远程服务器...
Java后台批量下载文件并压缩成zip下载的方法 Java后台批量下载文件并压缩成zip下载的方法是指在Java后台中批量下载文件,并将其压缩成zip文件下载到本地桌面。该方法具有重要的参考价值,感兴趣的小伙伴们可以参考...
- 添加文件:对每个要添加到ZIP文件的文件,创建一个`FileInputStream`,然后使用`ZipOutputStream`的`putNextEntry`方法打开新的ZIP条目,接着将文件内容写入`ZipOutputStream`,最后调用`closeEntry`关闭条目。...
JDK 1.8的压缩文件通常包含Java运行时环境(JRE)、开发工具(如编译器javac、jar打包工具等)以及其他必要的库文件。 在Java 8中,主要的更新和改进包括: 1. **Lambda表达式**:这是Java 8最显著的特性,引入了...
要压缩文件,你需要创建一个`ZipOutputStream`实例,然后通过它来添加`ZipEntry`。以下是一个基本的示例: ```java File fileToCompress = new File("path_to_your_file"); FileInputStream fis = new ...
其中,`addFilesToZip`方法递归地将目录中的每个文件添加到ZIP流。 ```java private void addFilesToZip(File file, ZipOutputStream zos, String path) { if (file.isDirectory()) { File[] files = file.list...
在Java编程环境中,导出CSV(逗号分隔值)文件并将其压缩成ZIP格式是一项常见的任务,特别是在处理大量数据时。CSV文件因其简洁、通用的格式,常用于数据交换和存储。本教程将深入讲解如何实现这个过程,并提供前...
Java操作Zip文件主要涉及到对文件和目录的压缩与解压缩,以及在必要时对压缩文件进行加密处理。这里我们重点讨论使用两个库:`zip4j`和`Apache Ant`来实现这些功能。 1. **zip4j库**:`zip4j-1.3.2.jar`是一个用...
压缩文件方法 该方法需要引用zip4j的jar文件 单个文件、多个文件压缩 /** * 使用给定密码压缩指定文件或文件夹到指定位置. * * dest可传最终压缩文件存放的绝对路径,也可以传存放目录,也可以传null或者""....