/** 压缩一个文件 */
private void compressFile(File file, TemplateEntity te, ZipOutputStream out, String basedir) {
if (!file.exists()) {
return;
}
BufferedInputStream bis = null;
ZipEntry entry = null;
try {
//设置文件名编码
out.setEncoding("GBK");
if( te != null ){
entry = new ZipEntry(basedir+te.getName()+".html");
//向rar中添加一个压缩文件
out.putNextEntry(entry);
//写入文本内容
out.write(XMLUtil.deleteDomain(te).getBytes("UTF8"));
}else{
bis = new BufferedInputStream( new FileInputStream(file));
//创建rar文件中的 压缩文件
entry = new ZipEntry(basedir + file.getName());
//向rar中添加一个压缩文件
out.putNextEntry(entry);
int count;
byte data[] = new byte[BUFFER];
while ((count = bis.read(data, 0, BUFFER)) != -1) {
out.write(data, 0, count);
}
bis.close();
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
压缩完的zip包没有问题,但是我发现如果在你要压缩的文件在不同的文件夹中,很有可能这些文件夹中的文件有重名的,当压缩完之后,在压缩包中就会出现很多重复的文件,之前实现这个功能的时候原以为如果在压缩的时候如果有重复的文件会自动覆盖的,呜呜呜,有哪位碰到类似的问题,可以交流下
分享到:
相关推荐
在IT行业中,文件压缩与解压缩是日常工作中常见的操作,特别是在数据传输、存储优化和软件分发等领域。这里我们主要探讨的是一个简单的工具类,它支持zip、rar、tar等多种格式的压缩和解压缩功能,并且经过实际测试...
知识点:将1G文件压缩至1M的技巧与文件压缩原理 一、文件压缩基础知识 文件压缩技术在信息技术领域有着广泛的应用,它能够减少文件占用的存储空间,提高传输效率,尤其是在网络带宽有限的情况下,压缩技术尤为重要...
3. **GZIP格式**:GZIP是一种文件压缩格式,主要用于单个文件的压缩。Java中的`GZIPOutputStream`和`GZIPInputStream`用于对文件进行GZIP压缩和解压缩。 4. **源代码实现**:实践中提供的源代码展示了如何使用Java ...
"Protel99库文件压缩工具"就是为了应对这一问题而出现的实用程序。 该工具的主要功能是压缩Protel99的PCB库文件,以减小文件大小,但同时保持文件的完整性和可使用性。这通常通过去除不必要的空白区域、优化数据...
在标题提到的“将文件压缩的源码”中,我们可以深入探讨文件压缩的基本原理、常用的压缩算法以及如何通过编程实现文件压缩。 首先,我们要了解文件压缩的原理。文件中的数据通常包含大量的冗余信息,比如重复的字符...
《基于哈夫曼树的文件压缩与解压技术在QT可视化界面中的实现》 哈夫曼编码是一种数据压缩算法,其核心是构建哈夫曼树,通过对数据出现频率的统计,构建出一棵特殊的二叉树——哈夫曼树,使得出现频率高的字符具有较...
数据结构课程设计用哈夫曼编码实现文件压缩: 一、实验题目: 用哈夫曼编码实现文件压缩 二、实验目的: 1、了解文件的概念。 2、掌握线性链表的插入、删除等算法。 3、掌握Huffman树的概念及构造方法。 4、掌握...
1. 分析给出的多文件打包/解包程序MyZip和单文件压缩程序Compress,将程序MyZip改写为一个能够处理多文件压缩/解压的控制台程序,可利用命令行参数控制其完成如下功能: 1. 将命令行参数指定的一组文件压缩为一个...
在Java编程中,将多个文件压缩成一个ZIP文件并实现下载是一个常见的任务,尤其是在处理大量数据或文件分发时。这个过程涉及到Java的I/O流、压缩和HTTP响应的使用。下面将详细介绍如何实现这个功能。 首先,我们需要...
在IT领域,图形文件压缩是图像处理和数据存储的一个重要环节。这主要涉及到如何在保持图像质量的同时,减少文件的存储空间。以下是一些关于图形文件压缩的重要知识点: 1. **压缩原理**:图像文件通常包含大量的...
《易语言模块文件压缩专家》是一款专为易语言开发者设计的高效、便捷的文件压缩工具。易语言,作为中国本土的编程语言,以其简洁的语法和丰富的库支持,深受初级和中级程序员的喜爱。这款模块文件压缩专家正是为了...
在IT领域,文件压缩是一种常见的数据管理技术,用于减少文件的存储空间,提高传输效率。本文将详细讨论“简单的文件压缩程序”的实现及其工作原理,同时关注如何将多个文件压缩到一个文件中,并能自由设定目标文件的...
1G的文件压缩成1M的方法1G的文件压缩成1M的方法.rar1G的文件压缩成1M的方法.rar1G的文件压缩成1M的方法.rar1G的文件压缩成1M的方法.rar1G的文件压缩成1M的方法.rar1G的文件压缩成1M的方法.rar1G的文件压缩成1M的方法...
在C语言中实现基于哈夫曼编码的文件压缩解压程序,需要深入理解哈夫曼编码的基本原理以及C语言编程技巧。 首先,哈夫曼编码是根据字符出现频率进行编码的一种方法。它通过构建一棵特殊的二叉树——哈夫曼树(也称为...
Linux系统的文件压缩和解压缩方法.pdf Linux系统的文件压缩和解压缩方法是Linux系统中非常重要的一部分。了解Linux系统的文件压缩和解压缩方法对提高用户使用Linux系统的能力非常有帮助。本文将对Linux系统的文件...
在IT领域,文件压缩是一种常见的数据处理技术,用于减少存储空间和提高传输效率。Huffman编码是文件压缩中的一种高效算法,由David A. Huffman在1952年提出,主要用于无损数据压缩。本篇将详细介绍基于Huffman树的...
### 使用单条命令将目录下所有文件压缩成CAB包的方法 在IT行业中,文件管理和压缩是一项非常重要的技能。特别是对于系统管理员和技术支持人员来说,能够有效地管理文件和目录是日常工作中不可或缺的一部分。本文将...
1G的文件压缩成1M的方法,很多网上下载的文件只有300MB或400MB,但是解压后,居然可以达到2GB甚至更多,也许你会奇怪,为什么你用WinRAR压缩同样的文件,就没有这样的压缩效果呢?其实这是因为这些文件是用多款不同...
适合练手、课程设计、毕业设计的Java项目源码:文件压缩与解压缩实践(源代码+论文).rar 适合练手、课程设计、毕业设计的Java项目源码:文件压缩与解压缩实践(源代码+论文).rar 适合练手、课程设计、毕业设计的Java...
Huffman编码实现文件压缩 Huffman编码是一种变长前缀编码,用于压缩数据。该编码方法使用频率最高的符号分配最短的编码,以达到压缩数据的目的。下面是基于Huffman编码实现文件压缩的知识点总结: 1. 哈夫曼树的...