`
ChiLHuo
  • 浏览: 11055 次
社区版块
存档分类
最新评论

java 解压文件 文件名为中文

    博客分类:
  • java
 
阅读更多

        java在解压zip包中的文件时,如果文件名有中文,将会抛出异常.

        网上有方法说直接修改java.util.zip.ZipInputStream中的方法

        后来又找到一种方法,使用ant的ZipFile来解决,测试可用

package test6;

import java.io.File; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 
import java.util.Enumeration; 

import org.apache.tools.zip.ZipFile; 

/** 
 * Author:neo_q Create_Date:2008-3-17 
 */ 
public class UnZip { 

public static final int DEFAULT_BUFFER = 1024 * 4; 

public static long copy(InputStream aIn, OutputStream aOut, int aBufferSize) 
throws IOException { 
byte[] buffer = new byte[aBufferSize]; 
int read = 0; 
long totalBytes = 0; 
while (-1 != (read = aIn.read(buffer))) { 
aOut.write(buffer, 0, read); 
totalBytes += read; 
} 
return totalBytes; 
} 

public static long copy(InputStream aIn, OutputStream aOut) 
throws IOException { 
return copy(aIn, aOut, DEFAULT_BUFFER); 
} 

public static void unzip1(File zipFileName, File outputDirectory) 
throws Exception { 
ZipFile zf = null; 
try { 
zf = new ZipFile(zipFileName); 
Enumeration en = zf.getEntries(); 
while (en.hasMoreElements()) { 
org.apache.tools.zip.ZipEntry entry = (org.apache.tools.zip.ZipEntry) en 
.nextElement(); 
System.out.println(entry.getName()); 

FileOutputStream out = null; 
try { 
System.out.println(entry.isDirectory()); 

if (!entry.isDirectory()) { 
File newFile = new File(outputDirectory, entry 
.getName()); 
newFile.getParentFile().mkdirs(); 
out = new FileOutputStream(newFile); 
copy(zf.getInputStream(entry), out); 
} 

} catch (Exception io) { 
io.printStackTrace(); 
throw io; 
} finally { 
if (out != null) 
out.close(); 
} 

} 
} catch (IOException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} finally { 
try { 
if(zf!=null) 
zf.close(); 
} catch (IOException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 
} 
} 

public static void main(String[] args) throws Exception { 

UnZip.unzip1(new File("D:\\2m.zip"), new File("C:\\testUnzip\\dest")); 
System.out.println("OK"); 
} 

}

 内容来源于网络. 

分享到:
评论

相关推荐

    java压缩文件生成带密码的zip包,解压带密码的zip包的工具类

    * 如果传null或者""则将压缩文件存放在当前目录,即跟源文件同目录,压缩文件名取源文件名,以.zip为后缀; * 如果以路径分隔符(File.separator)结尾,则视为目录,压缩文件名取源文件名,以.zip为后缀,否则视为...

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

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

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

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

    Java压缩带有中文名的文件.rar

    Java压缩中文名的文件,大家都知道Java处理英文名的文件很强大,但是处理起中文名那可是比较麻烦了,需要经过很多步骤,这个例子可以告诉你如何简易的处理中文文件名的文件,以压缩中文文件名的文件为例。...

    Java文件结构解析工具

    一个简单的分析工具,用于分析”.class/.cap/.exp”格式的Java文件。 对于CAP文件,支持version 2.1 and 2.2. 适用于JCVM的学习。 使用工具时,需保证“C:\Program Files\...解压后,将后缀名改为“.exe”即可使用。

    对于任意一个文件进行压缩,压缩后的文件名为原文件名称去掉后缀加上.hz,例如,原来的未压缩文件的名字为a.txt,压缩后为a.hz

    对于任意一个文件进行压缩,压缩后的文件名为原文件名称去掉后缀加上.hz,例如,原来的未压缩文件的名字为a.txt,压缩后为a.hz,压缩后的文件信息使用TLV结构(TYPE-LENGTH-VALUE),文件信息包括霍夫曼编码码表,...

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

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

    zip4j_1.3.2 java代码压缩、解压文件

    * 如果传null或者""则将压缩文件存放在当前目录,即跟源文件同目录,压缩文件名取源文件名,以.zip为后缀; * 如果以路径分隔符(File.separator)结尾,则视为目录,压缩文件名取源文件名,以.zip为后缀,否则视为...

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

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

    文件合并工具,可以把图片和压缩文件合成一个问及爱你

    即合并的压缩文件的拓展名,文件即为压缩文件 本软件为java编写,没有打包jre所以需要自行安装jre. 安装过jdk的用户可以直接运行此软件,此软件在 世态炎凉一依然 吧.持续更新内容,并提供源代码. xp用户请不要使用桌面...

    java源码包4

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

    java web 开发技术大全光盘文件(part02)

    由于上传权限只有20M所以打成了5个rar包(java web 开发技术大全光盘文件(part01...文件名为Java Web (G).part1.rar、Java Web (G).part2.rar、Java Web (G).part3.rar、Java Web (G).part4.rar、Java Web (G).part5.rar...

    java web 开发技术大全光盘文件(part04)

    由于上传权限只有20M所以打成了5个rar包(java web 开发技术大全光盘文件(part01...文件名为Java Web (G).part1.rar、Java Web (G).part2.rar、Java Web (G).part3.rar、Java Web (G).part4.rar、Java Web (G).part5.rar...

    java源码包3

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

    java源码包2

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

    java web 开发技术大全光盘文件(part03)

    由于上传权限只有20M所以打成了5个rar包(java web 开发技术大全光盘文件(part01...文件名为Java Web (G).part1.rar、Java Web (G).part2.rar、Java Web (G).part3.rar、Java Web (G).part4.rar、Java Web (G).part5.rar...

    java excel 读取 用 zip 方式。不用第三方包

    * excel 目前使用的版本为2007,其他版本未测试, * excel 格式 定义 * 第一行 为 说明, * 第二行 为 字段说明 * 第三行 为 字段名字 * 第四行 为 前端字段类型 (我是后端我不用,所以不解析,) * 第五行...

    DJ Java Decompiler 3.12.12.96 老朽痴拙汉化版(JAVA反编译)

    -s - output file extension (by default '.jad') 如果不设置为-sjava,则默认扩展名为.jad 其他的,F:/amclientsdk/**/*.class 中的两颗接连的星,表示任意层次的子目录。 在Windows资源管理器的鼠标右键菜单中...

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

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

    基于JAVA实现文件压缩与解压缩实践附项目源码+文档说明

    Java程序的入口点是一个特殊的类,它包含了一个名为main的方法,这个方法是程序的起点。Java程序可以使用各种开发工具进行编写、编译和调试,比如IntelliJ IDEA等。 Java程序可以用于开发各种类型的应用程序,包括...

Global site tag (gtag.js) - Google Analytics