java 解压缩 中文名称问题

public List<String> unZip(String pathString, String zipPathString) {
long startTime = System.currentTimeMillis();
List<String> list = new ArrayList<>();
try {
Charset charset = Charset.forName("GBK");
ZipInputStream Zin = new ZipInputStream(new FileInputStream(
zipPathString), charset);// 输入源zip路径
BufferedInputStream Bin = new BufferedInputStream(Zin);
String Parent = pathString; // 输出路径(文件夹目录)
File Fout = null;
ZipEntry entry;
// List<ImgItem> list = new ArrayList<ImgItem>();
try {
while ((entry = Zin.getNextEntry()) != null
&& !entry.isDirectory()) {
String filenameString = entry.getName();
list.add(filenameString);
Fout = new File(Parent, filenameString);
if (!Fout.exists()) {
(new File(Fout.getParent())).mkdirs();
}
FileOutputStream out = new FileOutputStream(Fout);
BufferedOutputStream Bout = new BufferedOutputStream(out);
int b;
while ((b = Bin.read()) != -1) {
Bout.write(b);
}
Bout.close();
out.close();
System.out.println(Fout + "解压成功");
}
Bin.close();
Zin.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
long endTime = System.currentTimeMillis();
System.out.println("耗费时间: " + (endTime - startTime) + " ms");
return list;
}

时间: 2024-10-10 00:28:55

java 解压缩 中文名称问题的相关文章

Java解压缩.zip、.tar.gz、.tar.bz2(支持中文)

本文介绍Java解压缩.zip..tar.gz..tar.bz2的方式. 对于zip文件:使用java.util.zip.ZipEntry 和 java.util.zip.ZipFile,通过设置Charset为StandardCharsets.UTF_8支持中文. 对于.tar.gz.tgz文件:可以看做先用tar打包,再使用gz进行压缩.使用commons-compress包的TarArchiveInputStream和GzipCompressorInputStream. 对于.tar.bz

Java解压缩zip文件

下面实现的功能是zip文件中的图像文件解压到当前目录下,用jdk自带的处理zip文件的代码处理的,但是不能处理中文名称的文件,要不然就会出错. Java代码   import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import jav

11大Java开源中文分词器的使用方法和分词效果对比

本文的目标有两个: 1.学会使用11大Java开源中文分词器 2.对比分析11大Java开源中文分词器的分词效果 本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那要用的人结合自己的应用场景自己来判断. 11大Java开源中文分词器,不同的分词器有不同的用法,定义的接口也不一样,我们先定义一个统一的接口: /** * 获取文本的所有分词结果, 对比不同分词器结果 * @author 杨尚川 */ public interface WordSegmenter {

9大Java开源中文分词器的使用方法和分词效果对比

本文的目标有两个: 1.学会使用9大Java开源中文分词器 2.对比分析9大Java开源中文分词器的分词效果 9大Java开源中文分词器,不同的分词器有不同的用法,定义的接口也不一样,我们先定义一个统一的接口: /**  * 获取文本的所有分词结果, 对比不同分词器结果  * @author 杨尚川  */ public interface WordSegmenter {     /**      * 获取文本的所有分词结果      * @param text 文本      * @retur

关于SSH中tomcat下中文名称图片不显示的问题

最近做一个SSH框架的项目,用tomcat发布,需要上传图片到指定路径,然后再将图片显示在页面上.有一个问题:如果是英文名称的图片,就正常显示,可如果是中文的,它就是显示不出来,于是乎,在网上各种百度,各种尝试,查出有两种解决方法: 方法一: 在tomcat下的server.xml文件中,添加编码格式如图: 但是这种方法是治标不治本,如果换一种服务器发布,照样会出现乱码问题,这时就需要采用第二种方法. 方法二: 定义一个中文过滤器,步骤如下: 第一步:创建过滤器 ? 1 2 3 4 5 6 7

Java解压缩技术(一)ZIP压缩-解压缩

Java解压缩技术的实现 GZIP ZIP BZIP2系列实现 没啥好说的,都是些文件操作,直接贴代码 package com.ljh.zip; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import j

Java解压缩技术(二)GZIP压缩-解压缩(

Java解压缩技术的实现 GZIP ZIP BZIP2 没啥好说的,都是些文件IO操作 package com.ljh.gzip; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOExcept

文件上传下载过程中中文名称问题

//上传-- // 1 保存数据到excel,对应的sheet头header,body数据类型list //2 上传文件到服务器中 //下载-- // 1 获取文件路径 //2 导出数据到保持的路径(或者是浏览器路径) /** * 保存数据到excel * @param listBody * @param sheetName */ public void saveExcelData(List<DocLibBrowseOrgVo> listBody, String sheetName) { XS

第一个java程序中文乱码以及如何解决

出现问题:编码gbk的不可映射字段 原因:.java文件的编码与cmd命令执行器使用的编码不一致 我们使用的.java文件的编码为UTF-8 Cmd默认使用的编码为GBK: 解决方式统一编码: 方法1:更改源文件编码为GBK与cmd.exe对应 更改编码为ANSI编码,对应的就是GBK编码,然后将乱码文字重新输入保存.(如果用的是电脑自带记事本,另存为存储的编码也更改为ANSI编码,然后注意内容不乱吗即可) 使用javac命令正常编译: 解决方法2:编译的时候指定以何种编码方式进行编码 使用ja