使用java.util.zip下的类进行zip压缩,它使用的是uft-8的编码方式,这样会引起中文名变成乱码的情况,解决的方法是用truezip.jar下的类,truezip的相关介绍和下载见
https://truezip.dev.java.net/
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.CopyUtils;
import de.schlichtherle.io.FileInputStream;
import de.schlichtherle.io.FileOutputStream;
import de.schlichtherle.util.zip.ZipEntry;
import de.schlichtherle.util.zip.ZipOutputStream;
public class Test
{
public static void main(String []args); throws Exception
{
String needtozipfilepath ="";
String zipfilepath = "";
File needtozipfile = new File(needtozipfilepath);;
File zipfile = new File(zipfilepath);;
FileOutputStream fout = new FileOutputStream(zipfile);;
ZipOutputStream zout = new ZipOutputStream(fout,"GBK");; //解决中文问题的关键所在
try
{
for(File in : needtozipfile.listFiles(););
{
ZipEntry ze = new ZipEntry(in.getName(););;
zout.putNextEntry(ze);;
FileInputStream fis = new FileInputStream(in);;
try
{
CopyUtils.copy(fis,zout);;
}
catch (IOException e);
{
// TODO: handle exception
}
finally
{
if(fis != null);
fis.close();;
zout.closeEntry();;
}
}
}
catch (IOException e);
{
// TODO: handle exception
}
finally
{
if(zout != null);
{
zout.close();;
fout.close();;
}
}
}
}
分享到:
相关推荐
zipEntry.setComment("压缩文件"); // 可以添加注释,同样需要指定字符集 zos.putNextEntry(zipEntry); try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file))) { byte[] buffer...
然而,当压缩文件包含中文字符时,解压缩过程中可能会遇到乱码问题。这是因为编码格式不匹配或者处理方式不当导致的。本篇文章将深入探讨如何在Android平台上解决Java ZIP库在解压缩中文文件时出现的乱码问题。 ...
项目中碰到问题.jdk zipEntry 压缩中文文件名乱码 上网查了下,有两种方法,一种修改jdk ZipInputStream及ZipOutputStream 的源文件,比较麻烦,不建议此项. 第二种 就是拿来主义,因为 开源项目 Ant 里已经有...
解决java压缩zip文件时的中文乱码问题 实现:java压缩文件成zip实现无乱码。 包括:写好的工具类与jar包。 使用方法:导入ant.jar包,调用CompressExcelOperate中的方法,即可实现压缩文件,并保证没有中文乱码...
本文将深入探讨如何使用SharpCompress这一开源库来处理ZIP和RAR文件,并解决在处理中文文件名时可能出现的乱码问题。 SharpCompress是一款强大的、跨平台的压缩库,支持多种压缩格式,包括ZIP、TAR、GZIP、BZIP2、7...
在Java编程中,处理压缩和解压缩ZIP文件是一项常见的任务,尤其当文件中包含中文字符时,可能会遇到中文乱码的问题。这是因为Java的标准库在处理非ASCII编码时可能存在不足。本篇文章将详细介绍如何使用Java标准库...
在IT行业中,文件处理是日常工作中不可或缺的一部分,尤其是在涉及到压缩文件如ZIP时。"zip库(解决文件名中文乱码问题).zip" 提供了一个针对C++编程语言的解决方案,专门用于处理ZIP文件中中文文件名的乱码问题。这...
这里我们关注的是“文件解压和压缩”以及处理“中文乱码”的问题。在Java编程语言中,提供了多种库和工具来处理这些问题。 首先,`CompresszZipFile`是一个可能的自定义类或方法,它专门用于处理ZIP文件的解压。在...
在IT行业中,文件压缩是一种常见的数据存储和传输方式,ZipOutputStream是Java标准库中的一个类,用于将数据流写入ZIP格式的压缩文件。本文将深入探讨如何使用ZipOutputStream进行文件压缩,并解决可能出现的乱码...
总之,`ZipUtil`文件压缩工具类通过结合`ZipEntry`和`ZipOutputStream`,提供了一种高效且健壮的解决方案,尤其适合处理包含中文字符的文件和目录,确保在压缩和解压过程中不会出现乱码问题。这对于需要在Java应用...
在处理包含中文字符的压缩文件时,如果编码设置不正确,可能会导致解压缩后的文件出现乱码。这是因为不同的编码方式对非ASCII字符的表示方式不同,如GBK和UTF-8。当压缩或解压缩时,如果不指定正确的编码,程序可能...
在使用Java对ZIP压缩文件进行解压的方式中有两种,一种是使用apache提供的ant.jar工具包,但是如果ZIP文件中含有中文名称的文件,在解压后,文件名将出现乱码,另一种是使用Java自身JDK中java.util.zip包下工具类,...
- 压缩文件:对每个文件调用压缩算法,将结果写入ZIP流。 - 关闭ZIP流:完成压缩后关闭文件流。 - 解压文件:读取ZIP文件的中央目录,逐个解压缩数据块并写入目标目录。 五、调用示例 在Python中,可以使用`...
在IT行业中,中文乱码问题是一个常见的困扰,尤其是在处理压缩文件时。本文将详细探讨如何在使用7-Zip软件解压文件时解决中文乱码问题,以及如何在C#编程环境中处理这一问题。 首先,我们需要了解乱码产生的原因。...
在IT行业中,我们经常需要处理各种文件格式,其中ZIP是一种常见的压缩文件格式,用于整合多个文件到一个单一的档案中,以节省存储空间和便于传输。然而,当我们在解压缩ZIP文件时,有时会遇到“乱码”的问题,这通常...
Java在处理包含中文字符的压缩文件时,可能会遇到中文乱码的问题。这主要涉及两个方面:内容的中文乱码和压缩文件注释的中文乱码。以下是对这两个问题的详细解释以及解决方法。 1. 内容的中文乱码问题: 当Java...
`ZipOutputStream`是Java标准库中的一个类,它继承自`FilterOutputStream`,用于创建ZIP格式的压缩文件。当我们使用这个类进行文件压缩时,可能会遇到乱码问题,主要是因为编码设置不当导致的。下面我们将详细探讨...
用java.util.zipoutputstream压缩会出现中文的文件名乱码的情况,且无法设置字符集,这个版本用org.apache.tools.zip.ZipOutputStream压缩,可以自定义字符集,解决中文的文件名乱码问题。
ZIP是一种广泛使用的文件存档格式,它允许将多个文件和目录打包成一个单一的压缩文件,以节省存储空间和提高传输效率。ZIP文件内部包含了文件的原始数据以及元数据,如文件名、日期时间戳等。 在Java或Python等编程...
File targetFile = new File("目标压缩文件.zip"); try (FileOutputStream fos = new FileOutputStream(targetFile); UTF8ZipOutputStream zipOut = new UTF8ZipOutputStream(fos)) { addFilesToZip(sourceDir, ...