1.java解压zip格式的文件比较简单,直接上代码

​
/*** 解压zpi文件* @param zipPath* @param descDir* @return 返回解压之后的文件名称集合* @throws IOException*/public static List<String> ZipFiles(String zipPath,String descDir)throws IOException{List<String> list= unZipFiles(new File(zipPath), descDir);return list;}@SuppressWarnings("all")private static List<String> unZipFiles(File zipFile,String descDir)throws IOException{List<String> list=new ArrayList<String>();File pathFile = new File(descDir);if(!pathFile.exists()){pathFile.mkdirs();}//解决zip文件中有中文目录或者中文文件ZipFile zip = new ZipFile(zipFile, Charset.forName("GBK"));for(Enumeration entries = zip.entries(); entries.hasMoreElements();){ZipEntry entry = (ZipEntry)entries.nextElement();String zipEntryName = entry.getName();InputStream in = zip.getInputStream(entry);String outPath = (descDir+zipEntryName).replaceAll("\\*", "/");;//输出文件路径信息list.add(zipEntryName);//判断路径是否存在,不存在则创建文件路径File file = new File(outPath.substring(0, outPath.lastIndexOf('/')));if(!file.exists()){file.mkdirs();}//判断文件全路径是否为文件夹,如果是上面已经上传,不需要解压if(new File(outPath).isDirectory()){continue;}OutputStream out = new FileOutputStream(outPath);byte[] buf1 = new byte[1024];int len;while((len=in.read(buf1))>0){out.write(buf1,0,len);}in.close();out.close();}return list;}​

2.解压rar格式的文件,解压rar格式文件需要引入两个jar包  解压rar格式的文件的时候比较容易出现乱码的问题,下面完美的解决乱码的问题

java-unrar-0.5.jar
http://www.java2s.com/Code/JarDownload/java/java-unrar-0.5.jar.zip
apache-commons-logging.jar
http://www.java2s.com/Code/JarDownload/apache-commons/apache-commons-logging.jar.zip

 /*** 解压RAR格式 * @param srcRarPath* @param dstDirectoryPath* @return*/public static List<String> RarFiles(String srcRarPath, String dstDirectoryPath) {List<String> list=new ArrayList<String>();if (!srcRarPath.toLowerCase().endsWith(".rar")) {System.out.println("非rar文件!");return list;}File dstDiretory = new File(dstDirectoryPath);if (!dstDiretory.exists()) {// 目标目录不存在时,创建该文件夹dstDiretory.mkdirs();}Archive a = null;try {a = new Archive(new File(srcRarPath));if (a != null) {// a.getMainHeader().print(); // 打印文件信息.FileHeader fh = a.nextFileHeader();while (fh != null) {// 防止文件名中文乱码问题的处理String fileName = fh.getFileNameW().isEmpty() ? fh.getFileNameString() : fh.getFileNameW();list.add(fileName);if (fh.isDirectory()) { // 文件夹File fol = new File(dstDirectoryPath + File.separator+ fileName);fol.mkdirs();} else { // 文件File out = new File(dstDirectoryPath + File.separator+ fileName.trim());try {if (!out.exists()) {if (!out.getParentFile().exists()) {// 相对路径可能多级,可能需要创建父目录.out.getParentFile().mkdirs();}out.createNewFile();}FileOutputStream os = new FileOutputStream(out);a.extractFile(fh, os);os.close();} catch (Exception ex) {ex.printStackTrace();}}fh = a.nextFileHeader();}a.close();}} catch (Exception e) {e.printStackTrace();}return list;}

以上就是java解压两种格式的文件

java解压zip和rar并解决乱码问题相关推荐

  1. java解压zip与rar

    这两天,因为项目需要,涉及到文件夹的上传,想了很久,在网上也找了一些资料,都没有什么很好的办法,都是用插件之类的解决,后面就想到了上传压缩 文件,说到压缩文件,自然就会遇到,文件的解压缩问题,大家都知 ...

  2. 解压后java文字乱码_怎么解决java解压zip包出现乱码

    怎么解决java解压zip包出现乱码 发布时间:2020-06-23 09:02:42 来源:亿速云 阅读:107 作者:Leah 怎么解决java解压zip包出现乱码?相信很多没有经验的人对此束手无 ...

  3. php 判断是rar或是zip文件,PHP解压zip和rar文件的方法介绍

    PHP解压zip和rar文件的方法介绍?实例代码举例php语言如何解压文件.php开发经常会遇到解压zip和rar文件,以下方法供大家参考,判断文件是zip类型的还是rar类型,调用相关组件执行解压缩 ...

  4. Linux 下载安装 rar 并解压rar压缩包(Linux下如何解压.zip和.rar文件)

    Linux下如何解压.zip和.rar文件,对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们: 1)对于zip linux下提供了zip和unzip程序,zip是 ...

  5. linux 压缩7z文件夹,Linux 下压缩与解压.zip和.rar及.7z文件

    Linux 下压缩与解压.zip和.rar及.7z文件对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们: 1)对于.zip linux下提供了zip和unzip程 ...

  6. java util zip.zipexc,JAVA解压zip压缩文件的实例

    今天在弄一个东西,需要在PL/SQL中解压zip的压缩包,刚开始的时候是想着直接在PLSQL中调用java,在java里面调用unzip的shell命令来解析压缩文件,但是比较悲剧,一直老是失败,在尝 ...

  7. 解压zip、rar、gz格式文件

    rar解压版本:需要使用0.7,其他版本尝试了,不行,而且rar压缩的时候,也需要指定rar4,高版本不支持 <!--解压rar压缩--><dependency><gro ...

  8. Java解压zip文件(文本)压缩包

    2019独角兽企业重金招聘Python工程师标准>>> 说明:由于我们的日志收集到指定服务器上,会按天压缩成一个zip格式的压缩包,但是有时候需要对这些日志进行处理,人工解压在处理, ...

  9. 使用Python解压zip、rar文件

    解压 zip 文件 基本解压操作 import zipfile''' 基本格式:zipfile.ZipFile(filename[,mode[,compression[,allowZip64]]]) ...

  10. Ubuntu 14 如何解压 .zip、.rar 文件

    .zip 和 .rar 是Windows下常用的压缩文件,在Ubuntu中如何解压. [解压.zip文件] Ubuntu中貌似已经安装了unzip软件,解压命令如下: unzip ./FileName ...

最新文章

  1. System.Diagnostics.Process.Start()
  2. python第一次使用教程-Python考试_第一次
  3. RequireJs入门(一)
  4. php邮件加密,怎样对邮件正文分段加密及解密解决思路
  5. MATLAB双纵坐标绘图(重要)
  6. VMware 7.1.4安装Mac.OS.X.Lion.操作系统 key:安装 系统
  7. centos压缩和解压缩
  8. python3.8.0安装_Python3.8.0
  9. 请教 这段代码有问题吗
  10. 消失模设计与加工(FM-CAM)
  11. 取模运算与hash function
  12. 探秘中国网购的数据迷城
  13. 【Win10桌面美化】一个精致的程序员桌面是怎样的呢(花了一上午时间两种风格!)
  14. CAD贱人工具箱插件免费下载
  15. PMcaff-干货| 哪些 iOS 应用让你很满意并能提高生活质量?
  16. 我问我自己,你究竟想成为一个什么样的人?
  17. 匿名吐槽有风险,脉脉又被告了
  18. 页面可视化搭建工具业界的轮子
  19. CPU占用率过高的原因和后果
  20. [新手入门]微信公众号推文制作

热门文章

  1. MySQL数据库基本操作指令
  2. SwiftUI Core ML 基础教程
  3. 手持式以太网测试仪RFC2544测试演示
  4. 《Multiplayer Game Programming》阅读笔记
  5. 预加重,去加重和均衡
  6. 规范名称:汽车转向设计规范(齿轮齿条)
  7. 【AP_EJOR】Robust solutions to multi-objective linear programs with uncertain data(2)
  8. CS61A 2021Spring Lab: Cats
  9. MATLAB符号运算小技巧
  10. c语言实现按键的抖动与消除,7.3 按键消抖