java不解壓直接讀取壓縮包中文件的實(shí)現(xiàn)方法
更新時(shí)間:2021年04月23日 14:36:30 作者:丟失了名字的琥珀川
這篇文章主要介紹了java不解壓直接讀取壓縮包中文件的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
前言
最近寫了個(gè)上傳壓縮包,將壓縮包中的圖片保存的接口,所以翻了翻網(wǎng)上文件流操作的博客,總結(jié)了一個(gè)不用解壓,直接讀取文件的方法
上代碼
@RequestMapping(value = "packageUpload") public void packageUpload(HttpServletRequest request, HttpServletResponse response) { File file = null; try { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartFile multipartFile = multipartRequest.getFile("file"); if (null == multipartFile){ return; } String originalFilename = multipartFile.getOriginalFilename(); //判斷上傳文件必須是zip或者是rar否則不允許上傳 String[] filename = originalFilename.split("\\."); if (!filename[1].equals("zip") && !filename[1].equals("rar")){ return; } //創(chuàng)建臨時(shí)文件時(shí),名稱長(zhǎng)度必須大于2 file = File.createTempFile(filename[0].length() <= 2 ? "壓縮包" + filename[0] : filename[0], filename[1]); multipartFile.transferTo(file); file.deleteOnExit(); ZipFile zf = new ZipFile(file); Enumeration<?> zipEnum = zf.entries(); ZipEntry ze; while (zipEnum.hasMoreElements()) { ze = (ZipEntry) zipEnum.nextElement(); if (!ze.isDirectory()) { long size = ze.getSize(); if (size > 0) { String[] name = ze.getName().split("\\."); String emojiName = name[0]; String type = name[1]; if (type.equals("jpg") || type.equals("png") || type.equals("gif") || type.equals("jpeg")){ String[] split = emojiName.split("/"); String picName = split[1] + "." + type; InputStream is = zf.getInputStream(ze); logger.info("picName:" + picName + ",size:" + size + ",inputStream:" + is); ///到這里調(diào)用上傳文件的方法上傳這個(gè)圖片就可以了 } } } } } catch (Exception e) { logger.error("packageUpload_error:" , e); } }
到此這篇關(guān)于java不解壓直接讀取壓縮包中文件的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)java不解壓讀取壓縮包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中JDBC事務(wù)與JTA分布式事務(wù)總結(jié)與區(qū)別
Java事務(wù)的類型有三種:JDBC事務(wù)、JTA(Java Transaction API)事務(wù)、容器事務(wù),本文詳細(xì)介紹了JDBC事務(wù)與JTA分布式事務(wù),有需要的可以了解一下。2016-11-11詳解Java字節(jié)碼編程之非常好用的javassist
這篇文章主要介紹了詳解Java字節(jié)碼編程之非常好用的javassist,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04