zip文件怎么转换为rar(java实现zip文件的解压)

首页常识更新时间:2022-12-23 20:59:44

一、导入相关依赖包

<dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.8.1</version> </dependency>

二、创建相应的工具类

import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import com.xxx.xxx.entity.xxx.WkcrWord; import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipFile; /** * 解压文件的工具类 */ public class ZipUtil { /** * 解压文件 * @param directory 文件目录 * @param zip 文件zip的压缩包 */ public static List<WkcrWord> unZipFile(String directory, File zip) { List<WkcrWord> filePathList=new ArrayList<>(); try { int count; int buffer = 2048; File file; InputStream is; FileOutputStream fos; BufferedOutputStream bos; //根据不同环境,不同的文件,需要使用到不同的编码格式 ZipFile zipFile = new ZipFile(zip, "GBK"); Enumeration en = zipFile.getEntries(); createFolder(directory); while (en.hasMoreElements()) { byte buf[] = new byte[buffer]; ZipEntry entry = (ZipEntry) en.nextElement(); //获取压缩包中的文件的名字 String fileName = entry.getName(); if(fileName.contains("/")){ fileName=fileName.substring(fileName.lastIndexOf("/") 1); } String filePath = directory fileName; //根据业务逻辑创建相应的实体类 WkcrWord wkcrWord=new WkcrWord(); wkcrWord.setName(fileName); wkcrWord.setWordUrl(filePath); //根据不同的文件后缀设置正则表达式 String compile = ".*.doc.*|.*.docx.*"; //符合的保存 if(filePath.matches(compile)){ filePathList.add(wkcrWord); } if(entry.isDirectory()){ createFolder(filePath); }else{ file = new File(filePath); file.createNewFile(); is = zipFile.getInputStream(entry); fos = new FileOutputStream(file); bos = new BufferedOutputStream(fos, buffer); while ((count = is.read(buf)) > -1) { bos.write(buf, 0, count); } bos.close(); fos.close(); is.close(); } } zipFile.close(); //遍历当前上传的word进行转化为html进行相应的保存 filePathList.stream().forEach(wkcrWord-> wkcrWord.setWordTxt(DocTableReadUtil.saveWord(wkcrWord.getWordUrl(),wkcrWord.getName()))); } catch (IOException e) { e.printStackTrace(); }finally { zip.delete(); } return filePathList; } /** * 创建目录 * @param path 文件的目录 */ private static void createFolder(String path) { try { File uploadFilePath = new File(path); if (uploadFilePath.exists() == false) { uploadFilePath.mkdirs(); } } catch (Exception ex) { ex.printStackTrace(); } } }

,
展开阅读全文
推荐内容
热门内容
热门文章

© 2007-2022 http://www.anhuiqq.cn,All Rights Reserved.