java上传zip文件并解压读取
生活随笔
收集整理的這篇文章主要介紹了
java上传zip文件并解压读取
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
最近遇到一個(gè)這樣的需求:傳一個(gè)壓縮包給后臺,后臺保存后解壓讀取里面的文件,現(xiàn)學(xué)現(xiàn)做。在這里做個(gè)記錄
文件上傳
文件上傳有很多方法,這里推薦一個(gè)自己感覺挺好用的一種,代碼奉上:
@PostMapping(value = "/import", headers = "content-type=multipart/*")public R importSqlLite(@RequestParam("file") MultipartFile file) {String path = "C:/Users/aaa/Desktop/新建文件夾/";File newFile = new File(path + file.getOriginalFilename());//通過CommonsMultipartFile的方法直接寫文件(注意這個(gè)時(shí)候)file.transferTo(newFile);}文件解壓
參考了很多博客,發(fā)現(xiàn)了兩中解壓方式,一種是用org.apache.tools.zip.ZipFile這個(gè)包的 工具一種是SpringBoot自帶的net.lingala.zip4j.core.ZipFile。因?yàn)橛玫氖荢pringBoot項(xiàng)目就用的第二種,代碼奉上:
//解壓路徑private String dest = "C:\\Users\\aaa\\Desktop\\新建文件夾";public String Uncompress(String source) {List<String> picPaths = new ArrayList<>();try {File zipFile = new File(source);ZipFile zFile = new ZipFile(zipFile);// 首先創(chuàng)建ZipFile指向磁盤上的.zip文件zFile.setFileNameCharset("GBK");File destDir = new File(dest);// 解壓目錄 if (zFile.isEncrypted()) { zFile.setPassword(password.toCharArray()); // 設(shè)置密碼 }zFile.extractAll(dest); // 將文件抽出到解壓目錄(解壓) List<net.lingala.zip4j.model.FileHeader > headerList = zFile.getFileHeaders(); List<File> extractedFileList= newArrayList<File>(); for(FileHeader fileHeader : headerList) { if (!fileHeader.isDirectory()) { extractedFileList.add(new File(destDir,fileHeader.getFileName())); } } File [] extractedFiles = new File[extractedFileList.size()]; extractedFileList.toArray(extractedFiles); for(File f:extractedFileList){System.out.println(f.getAbsolutePath()+"....");}}catch(ZipException e) {}總結(jié)
以上是生活随笔為你收集整理的java上传zip文件并解压读取的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DirectX学习笔记(十五):粒子系统
- 下一篇: OpenGL(可编程管线):Bezier