行进中的蜗牛 2023-06-05 23:48 采纳率: 100%
浏览 36
已结题

ZipInputStream 读取 file.getInputStream()失败,该如何解决

需求描述:
实现一个接口,接收zip文件的时候读取有压缩包里边的excel或csv表格里边的数据

有如下接口:

@RestController
@RequestMapping("/")
public class Controller {
    @GetMapping("index")
    public void test(MultipartFile file) {
        try {
            InputStream inputStream = file.getInputStream();
            System.out.println(inputStream.available());
            ZipEntry zipEntry;
            ZipInputStream zipInputStream = new ZipInputStream(inputStream);

            System.out.println(zipInputStream.available());
            while ((zipEntry = zipInputStream.getNextEntry()) != null) {
                String fileName = zipEntry.getName();
                System.out.println(fileName);
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}

问题描述:
inputStream 可以接收数据的内容,但是无法将数据流写到ZipInputStream,既【new ZipInputStream(inputStream);】无效,请问哪位有解决过类似的问题

  • 写回答

2条回答 默认 最新

  • 追梦的青鸟 2023-06-06 10:20
    关注

    你可以试试,未测试!

    
    public void test(File file) {
            try {
               // 开始解压
              ZipFile zipFile = new ZipFile(file)
                Enumeration<ZipEntry> entries = (Enumeration<ZipEntry>) zipFile.entries();
                while (entries.hasMoreElements()) {
                   ZipEntry entry = entries.nextElement();
                    String entryName = entry.getName();
                    System.out.println(fileName);
                }
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月19日
  • 已采纳回答 6月11日
  • 创建了问题 6月5日