`
wingware
  • 浏览: 143643 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java zip压缩文件中文乱码

阅读更多
1.解压文件
  
 public static Map<String,File> unzip(File zipFile) throws IOException {
		Map<String,File> map = new Hashtable<String,File>();
		org.apache.tools.zip.ZipFile zfile = new org.apache.tools.zip.ZipFile(zipFile,"GBK");
		Enumeration<?> enumeration = zfile.getEntries();
		InputStream is = null;
		while (enumeration.hasMoreElements()) {
			ZipEntry entry = (ZipEntry) enumeration.nextElement();
			if (!entry.isDirectory()) {
				is = zfile.getInputStream(entry);
				BufferedInputStream bis = new BufferedInputStream(is);
				File temp = new File(Constant.FTP_LOCAL_DIR+""+CommonUtils.getToday()+"_upload/"+entry.getName());
				if(!temp.getParentFile().exists()){
					temp.getParentFile().mkdirs();
				}
				OutputStream bos = new FileOutputStream(temp);
				IOUtils.copy(bis, bos);
				bis.close();
				bos.close();
				is.close();
				map.put(entry.getName(), temp);
			}
		}
		return map;
	}

2.压缩文件
private static File zip(List<File> fileList,String zipFileName) throws Exception{
		File zipFile=null;
		if (fileList.size() > 0) {
			zipFile = new File(zipFileName);
			FileOutputStream fos = new FileOutputStream(zipFile);
			ZipOutputStream zos = new ZipOutputStream(fos);
			for (File f : fileList) {
				ZipEntry entry = new ZipEntry(f.getName());
				zos.setEncoding("gbk");
				zos.putNextEntry(entry);
				CommonUtils.addFile(f, zos);
			}
			zos.close();
			fos.close();
		}
		return zipFile;
	}




	public static void addFile(File file, OutputStream zos) throws IOException {
		InputStream in = new FileInputStream(file);
		byte[] b = new byte[1024000];
		int length;
		while ((length = in.read(b)) > -1) {
			zos.write(b, 0, length);
			zos.flush();
		}
		in.close();
	}
分享到:
评论

相关推荐

    java压缩zip文件解决中文乱码问题

    总结来说,处理Java中ZIP文件的中文乱码问题,关键在于明确指定字符集,通常是UTF-8,无论是使用Java内置的API还是第三方库。同时,理解文件系统的编码和压缩/解压过程中的字符编码转换也非常重要。通过这种方式,...

    java android zip解压缩(解决压缩中文乱码问题)

    本篇文章将深入探讨如何在Android平台上解决Java ZIP库在解压缩中文文件时出现的乱码问题。 首先,我们要明白乱码问题的根源。在文件的压缩和解压缩过程中,文件名通常被编码为字节序列,这个序列取决于原始文件名...

    java zip压缩解压工具解决中文乱码问题

    在Java编程中,处理压缩和解压缩ZIP文件是一项常见的任务,尤其当文件中包含中文字符时,可能会遇到中文乱码的问题。这是因为Java的标准库在处理非ASCII编码时可能存在不足。本篇文章将详细介绍如何使用Java标准库...

    解决java压缩zip文件时的中文乱码问题(包含jar包和工具类)

    解决java压缩zip文件时的中文乱码问题 实现:java压缩文件成zip实现无乱码。 包括:写好的工具类与jar包。 使用方法:导入ant.jar包,调用CompressExcelOperate中的方法,即可实现压缩文件,并保证没有中文乱码...

    java zip解压中文乱码问题

    网上很多描述java解压中文乱码的问题,很多描述不全.由于工作需要整理出一个完整版.简单实用.下载后请从ZipUtil.java的main方法开始,一目了然. public static void main(String args[]) { new ZipUtil().unZip("E:\\...

    文件解压和压缩 解决中文乱码

    在IT行业中,文件的压缩和解压是一项...总的来说,理解和掌握文件压缩和解压的原理,以及处理中文乱码的方法,对Java开发者来说至关重要,这能够帮助他们有效地处理各种文件操作需求,尤其是涉及到多语言环境的时候。

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

    在Java编程中,向现有的ZIP压缩包追加文件通常需要经过解压、修改、再压缩的步骤,因为标准的Java ZIP库(如`java.util.zip`包)并不直接支持追加到已存在的ZIP文件。本篇文章将深入探讨如何实现这个功能,主要关注...

    解压zip压缩文件,支持多文件目录解压,中文乱码问题

    在使用Java对ZIP压缩文件进行解压的方式中有两种,一种是使用apache提供的ant.jar工具包,但是如果ZIP文件中含有中文名称的文件,在解压后,文件名将出现乱码,另一种是使用Java自身JDK中java.util.zip包下工具类,...

    java压缩zip文件中文乱码问题解决方法

    总之,解决Java压缩ZIP文件中文乱码问题的关键在于使用支持设置编码的第三方库,并在处理中文内容和注释时明确指定正确的字符编码。这样,无论在何种编码环境中,都能确保中文字符正确无误地被压缩和解压。

    JDK ZipEntry压缩中文文件名乱码解决

    项目中碰到问题.jdk zipEntry 压缩中文文件名乱码  上网查了下,有两种方法,一种修改jdk ZipInputStream及ZipOutputStream 的源文件,比较麻烦,不建议此项.  第二种 就是拿来主义,因为 开源项目 Ant 里已经有...

    java解决压缩中文乱码

    在Java编程中,当涉及到文件压缩操作时,经常会遇到一个问题:中文字符在压缩过程中出现乱码。这主要是因为Java的标准库`java.util.zip`在处理非ASCII编码的字符时存在局限性。不过,通过一些技巧和自定义实现,我们...

    Java ZIP压缩一个或多个文件(解决中文名称乱码).rar

    用java.util.zipoutputstream压缩会出现中文的文件名乱码的情况,且无法设置字符集,这个版本用org.apache.tools.zip.ZipOutputStream压缩,可以自定义字符集,解决中文的文件名乱码问题。

    java zip文件压缩与解压缩

    Apache Commons Compress库是Java中一个强大的工具,它提供了对多种压缩格式的支持,包括zip,而且能够处理中文文件名的问题,避免了因为字符编码不正确导致的乱码问题。 首先,我们要了解Java内置的`java.util.zip...

    ZipUtil文件压缩工具类(解决中文乱码)

    此外,`ZipUtil`类可能还包含其他实用功能,比如解压缩ZIP文件,检查ZIP文件是否存在中文乱码,或者提供配置选项以自定义压缩级别、是否保留原文件的最后修改时间等。 总之,`ZipUtil`文件压缩工具类通过结合`Zip...

    ZipOutputStream 压缩文件以及乱码问题解决方案

    在IT行业中,文件压缩是一种常见的数据存储和传输方式,ZipOutputStream是Java标准库中的一个类,用于将数据流写入ZIP格式的压缩文件。本文将深入探讨如何使用ZipOutputStream进行文件压缩,并解决可能出现的乱码...

    用java对文件进行压缩并且解决乱码问题

    `ZipOutputStream`是Java标准库中的一个类,它继承自`FilterOutputStream`,用于创建ZIP格式的压缩文件。当我们使用这个类进行文件压缩时,可能会遇到乱码问题,主要是因为编码设置不当导致的。下面我们将详细探讨...

    java zipentry.jar 解决解压失败问题

    在Java编程中,处理压缩文件,如ZIP格式,是一项常见的任务。然而,当ZIP文件包含中文文件名时,可能会遇到解压失败的问题。这主要源于字符编码不匹配或处理方式不当。本文将深入探讨这个问题,并提供解决方案。 ...

    Java压缩和解压缩zip文件

    本篇文章将详细探讨如何使用Java内置的类库来实现ZIP文件的压缩和解压缩,以及解决中文文件名出现乱码的问题。 首先,我们要了解Java中处理ZIP文件的核心类:`java.util.zip.ZipOutputStream` 和 `java.util.zip....

    Java中压缩与解压--中文文件名乱码解决办法

    在Java中处理文件的压缩与解压时,经常会遇到中文文件名出现乱码的问题。这个问题主要源于Java中默认使用的编码方式与实际文件名编码不一致,尤其是在Windows系统下,文件名通常采用GB2312或GBK编码,而Java中的`...

    java 下载文件 压缩且删除源文件(支持文件夹与文件)

    1、指定文件可下载并且服务器端会删除此文件。 2、指定文件夹(文件夹中必须有一个文件),程序会自动的压缩文件为 zip,然后下载删除源文件与压缩文件...注意一点:中文的文件名会出现乱码(解决方案:导入ant.jar)

Global site tag (gtag.js) - Google Analytics