如何读取zip文件中的文件?

时间:2018-10-18 18:09:00

标签: java file spring-boot zip

请帮助。我想从zip文件中读取文件。我的zip文件是MultipartFile。然后,我使用ZipInputStream获取其输入文件,但是,它给出了找不到该文件的错误。

    public String importProject(MultipartFile file) throws IOException, ParseException {
    //Reading the input of zip file,
    ZipInputStream zin = new ZipInputStream(file.getInputStream());
    ZipEntry ze;
    FileInputStream excel = null;
    ArrayList<AnimationSvg> animationSvgs = new ArrayList<>();
    while ((ze = zin.getNextEntry()) != null) {
        if(ze.getName().contains(".xlsx")){
            excel = new FileInputStream(ze.getName());
        }
        else if(ze.getName().contains(".svg")){
            FileInputStream svg = new FileInputStream(ze.getName());
            AnimationSvg animationSvg = new AnimationSvg();
            animationSvg.setName(ze.getName());
            StringBuilder svgContent = new StringBuilder();
            int i;
            while((i = svg.read())!=-1) {
                svgContent.append(String.valueOf((char) i));
            }
            animationSvg.setSvgContent(String.valueOf(svgContent));
            animationSvgs.add(animationSvg);
        }
        zin.closeEntry();
    }
    zin.close();

1 个答案:

答案 0 :(得分:1)

zip存档中的条目不是文件。只是zip中压缩字节的序列。

完全不使用FileInputStream。只需从ZipInputStream中读取zip条目数据即可:

pylint --help-msg=<code-or-name>