提交文件MultipartFile后ZipEntry.size一直为-1
    
  
      
      
      
      
    
        
          
                  
    
    
    
    
                  先看一下代码
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 
 | public static void importModels (MultipartFile file) throws IOException, InvalidFormatException {ZipInputStream zipInputStream = new ZipInputStream(file.getInputStream(), Charset.defaultCharset());
 BufferedInputStream bs = new BufferedInputStream(zipInputStream);
 Map<String, Map> stringMapMap;
 Map<String, String> modelJsons = new HashMap<>();
 ZipEntry zipEntry;
 String zipFileName;
 while ((zipEntry = zipInputStream.getNextEntry()) != null) {
 if (zipEntry.isDirectory()) {
 
 } else if (zipEntry.getName().endsWith("json")) {
 String name = zipEntry.getName();
 
 long size = zipEntry.getSize();
 if (size == -1) {
 ByteArrayOutputStream baos = new ByteArrayOutputStream();
 while (true) {
 int bytes = zipInputStream.read();
 if (bytes == -1) {
 break;
 }
 baos.write(bytes);
 }
 baos.close();
 System.out.println(String.format("Name:%s,Content:%s", name, new String(baos.toByteArray())));
 } else {
 byte[] bytes = new byte[(int) zipEntry.getSize()];
 zipInputStream.read(bytes, 0, (int) zipEntry.getSize());
 System.out.println(String.format("Name:%s,Content:%s", name, new String(bytes)));
 }
 } else if (zipEntry.getName().endsWith("xlxs")) {
 } else {
 return;
 }
 }
 return;
 }
 
 | 
文件提交后台
是提交后天后文件并不是在本地,网上之前有提供zipfile后读取在我这边是不可能实现
| 12
 3
 4
 5
 6
 7
 8
 
 | while ((ze = zin.getNextEntry()) != null) {BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(zin));
 BufferedReader reader = new BufferedReader(new InputStreamReader(file.getInputStream()));
 String str;
 while ((str = reader.readLine()) != null) {
 System.out.println(str);
 }
 }
 
 | 
上面的读取的是整个Zip文件,和要求不符
上传Zip文件不解压读取文件内容时ZipEntry的size为-1的问题