经测试,文件名为中文的压缩完为乱码,测试过.txt 的文件类型,中文内容可以正常显示。

所以这种方案不可行。

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.FileUtils;
/*** @author  压缩指定的目录以及解压指定的压缩文件(仅限ZIP格式).*/public class ZipUtils {/*** 将指定目录下的所有文件压缩并生成指定路径的压缩文件. 如果压缩文件的路径或父路径不存在, 将会自动创建.* * @param src*            将要进行压缩的目录* @param zip*            最终生成的压缩文件的路径*/public static void zip(File src, File zip) throws IOException {zip(src, FileUtils.openOutputStream(zip));}/*** 将指定目录下的所有文件压缩并将流写入指定的输出流中.* * @param src*            将要进行压缩的目录* @param out*            用于接收压缩产生的文件流的输出流*/public static void zip(File src, OutputStream out) throws IOException {zip(src, new ZipOutputStream(out));}/*** 将指定目录下的所有文件压缩并将流写入指定的ZIP输出流中.* * @param src*            将要进行压缩的目录* @param zout*            用于接收压缩产生的文件流的ZIP输出流*/public static void zip(File src, ZipOutputStream zout) throws IOException {try {doZip(src, zout, "");} finally {IOUtils.closeQuietly(zout);}}/*** 将指定的压缩文件解压到指定的目标目录下. 如果指定的目标目录不存在或其父路径不存在, 将会自动创建.* * @param zip*            将会解压的压缩文件* @param dest*            解压操作的目录目录*/public static void unzip(File zip, File dest) throws IOException {unzip(FileUtils.openInputStream(zip), dest);}/*** 将指定的输入流解压到指定的目标目录下.* * @param in*            将要解压的输入流* @param dest*            解压操作的目标目录*/public static void unzip(InputStream in, File dest) throws IOException {unzip(new ZipInputStream(in), dest);}/*** 将指定的ZIP输入流解压到指定的目标目录下.* * @param zin*            将要解压的ZIP输入流* @param dest*            解压操作的目标目录*/public static void unzip(ZipInputStream zin, File dest) throws IOException {try {doUnzip(zin, dest);} finally {IOUtils.closeQuietly(zin);}}/*** @param src 源文件目录或者文件* @param zout 输出的流* @param ns*/private static void doZip(File src, ZipOutputStream zout, String ns)throws IOException {for (File file : src.listFiles()) {String entryName = ns + file.getName();if (file.isDirectory()) {System.out.println("adding: {}"+entryName + "/");zout.putNextEntry(new ZipEntry(entryName));doZip(file, zout, entryName);} else {System.out.println("adding: {}"+ entryName);zout.putNextEntry(new ZipEntry(entryName));fillZip(FileUtils.openInputStream(file), zout);}}}/*** @param zin* @param dest*/private static void doUnzip(ZipInputStream zin, File dest)throws IOException {for (ZipEntry e; (e = zin.getNextEntry()) != null; zin.closeEntry()) {File file = new File(dest, e.getName());if (e.isDirectory()) {System.out.println(" creating: {}"+file.getName() + File.separator);FileUtils.forceMkdir(file);} else {System.out.println("inflating: {}"+file);flushZip(zin, FileUtils.openOutputStream(file));}}}/*** @param in* @param zout*/private static void fillZip(InputStream in, ZipOutputStream zout)throws IOException {try {IOUtils.copy(in, zout);} finally {IOUtils.closeQuietly(in);}}/*** @param zin* @param out*/private static void flushZip(ZipInputStream zin, OutputStream out)throws IOException {try {IOUtils.copy(zin, out);} finally {IOUtils.closeQuietly(out);}}/*** */private static Logger logger = LoggerFactory.getLogger(ZipUtils.class);public static void main(String[] args){try {ZipUtils.zip(new File("D:\\evidence\\20120712\\重生回到1997_2012071213114144\\言情小说吧_www.xs8.cn"), new File("D:\\evidence\\20120712\\重生回到1997_2012071213114144\\言情.zip"));} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}} 

java压缩----使用sun JDK压缩--中文的文件名会是乱码相关推荐

  1. java压缩----使用ANT JDK压缩---解决中文问题

    import java.io.File; import java.io.IOException; import org.apache.tools.ant.Project; import org.apa ...

  2. java压缩----使用ANT JDK压缩---只压缩选中目录的指定文件夹

    写在前面的话:使用ANT中的压缩功能在很多文章中都有,但是只能压缩指定目录的全部文件或者文件夹,在项目中,经常有这样的需求:只压缩指定目录的部分文件夹, 用过ant.xml 的人都很容易想到 file ...

  3. java putnextentry_Java对zip格式压缩和解压缩

    Java对zip格式压缩和解压缩 通过使用java的相关类可以实现对文件或文件夹的压缩,以及对压缩文件的解压. 1.1 ZIP和GZIP的区别 gzip是一种文件压缩工具(或该压缩工具产生的压缩文件格 ...

  4. Java导出多个excel压缩成zip下载

    Java导出多个excel压缩成zip下载 maven <!--hutoos工具类根据需要可以导入不同的模块,我这里是导入全部的模块--><dependency><gro ...

  5. Java图片压缩及解决遇到压缩时出现黑底的问题

    在项目中有个需求是将图片和其他文件合并,最后输出为一个文件,我在大佬们的帮助下找到合适的压缩工具类来实现压缩,并做如下总结: 方案一 package com.example.cn.service;im ...

  6. java压缩图片比例quality_Java实现的上传并压缩图片功能【可等比例压缩或原尺寸压缩】...

    本文实例讲述了java实现的上传并压缩图片功能.分享给大家供大家参考,具体如下: 先看效果: 原图:1.33M 处理后:27.4kb 关键代码: package codeGenerate.util; ...

  7. 使用jdk压缩war包

    首先安装jdk 压缩 ..../jdk/bin/jar -cvf file.war file 解压 ..../jdk/bin/jar -xvf file.war 转载于:https://www.cnb ...

  8. java图片的导出,并压缩

    java图片的导出,并压缩 java 压缩包jar包使用的是commons-compress-1.6.jar /*** 导出图片* @param request* @param response*/@ ...

  9. java 解压到内存,Java GZip 基于内存实现压缩和解压的方法

    欢迎大家关注本博,同时欢迎大家评论交流,可以给个赞哦!!! GZip是常用的无损压缩算法实现,在Linux中较为常见,像我们在Linux安装软件时,基本都是.tar.gz格式..tar.gz格式文件需 ...

最新文章

  1. tomcat配置访问项目时不需要加项目名称
  2. 无锡初一计算机试题,2015年无锡市初中信息技术考查选择题.doc
  3. 简单Linux C线程池
  4. Spark详解(二):Spark完全分布式环境搭建
  5. 关于linkedin的network的观察和自己的职业道路的追求
  6. 软件需求说明书 概要设计说明书 项目开发计划 详细设计说明书 模版
  7. 【CodeForces - 616C】The Labyrinth(bfs,并查集,STLset)
  8. 【Git】GitHub主页从Dark调回Light的方法
  9. 单目摄像机测距(python+opencv)(转载)
  10. DAG镶嵌模型+原始路径打印
  11. mybatis结果的组装(springboot)
  12. 计算机物联网软件工程,关于计算机物联网的应用分析
  13. Java开发 明华usbkey_UsbKey开发文档
  14. 为什么说人间值得,因为有这么多美好让我们留恋。金秋十月初九于指南山村 。...
  15. linux ubi 分区,Linux ubi子系统原理分析
  16. post请求参数校验工具param-validate
  17. 制作SD卡系统镜像img文件
  18. Oracle Report開發(1)--Oracle Report Builder
  19. 【浙江大学】一个开源的知识图谱表示学习框架
  20. Ubuntu修改只能用Guest登录

热门文章

  1. [USACO06NOV]玉米田Corn Fields(动态规划,状态压缩)
  2. 排球积分程序(三)——模型类的设计
  3. powershell
  4. 当程序开发人员开始抛弃技术时,是否意味着噩梦的开始?抛弃了SQL Server 2000才发现客户的简单问题真的很难解决...
  5. qt 程序windows 上发布
  6. Linux下C语言的文件操作
  7. Sqlite 错误码
  8. Windows 7/8/8.1 硬盘安装法实现 ubuntu 14.04 双系统
  9. PL/SQL DEVELOPER 使用的一些技巧
  10. 阶段总结——201511