溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java如何實(shí)現(xiàn)不解壓直接讀取壓縮包中文件的

發(fā)布時(shí)間:2021-04-30 10:41:51 來源:億速云 閱讀:377 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下java如何實(shí)現(xiàn)不解壓直接讀取壓縮包中文件的,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

Java的優(yōu)點(diǎn)是什么

1. 簡單,只需理解基本的概念,就可以編寫適合于各種情況的應(yīng)用程序;2. 面向?qū)ο螅?. 分布性,Java是面向網(wǎng)絡(luò)的語言;4. 魯棒性,java提供自動(dòng)垃圾收集來進(jìn)行內(nèi)存管理,防止程序員在管理內(nèi)存時(shí)容易產(chǎn)生的錯(cuò)誤。;5. 安全性,用于網(wǎng)絡(luò)、分布環(huán)境下的Java必須防止病毒的入侵。6. 體系結(jié)構(gòu)中立,只要安裝了Java運(yùn)行時(shí)系統(tǒng),就可在任意處理器上運(yùn)行。7. 可移植性,Java可以方便地移植到網(wǎng)絡(luò)上的不同機(jī)器。8.解釋執(zhí)行,Java解釋器直接對(duì)Java字節(jié)碼進(jìn)行解釋執(zhí)行。

上代碼

@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í),名稱長度必須大于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);
  }
 }

以上是“java如何實(shí)現(xiàn)不解壓直接讀取壓縮包中文件的”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI