java 解压缩 中文_java 解压缩 中文名称问题

public List unZip(String pathString, String zipPathString) {

long startTime = System.currentTimeMillis();

List 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 list = new ArrayList();

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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值