Java将文件转换为Zip文件

时间:2014-10-27 14:15:28

标签: java zipfile

我正在尝试使用文件选择器(只允许选择拉链)给我那个文件然后我将在zip中的每个单独的文件上执行另一个方法。但是,我正在努力使用编译器,因为它是预期的通用文件而不是zipFiles。我正在尝试使用此示例:the marked answer on this post

File zipFile = zfc.getSelectedFile();

        ZipInputStream zis;
        try {
            zis = new ZipInputStream(new FileInputStream(zipFile));

            ZipEntry ze;

            ze = zis.getNextEntry();

            while (ze != null) {

                    InputStream stream =  ((ZipFile) zipFile)
                            .getInputStream(ze);

                //method here that will operate on stream 

                ze = zis.getNextEntry();
            }

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

基本上如何从java中的zip读取文件或如何将zipEntry更改为文件。

2 个答案:

答案 0 :(得分:1)

java.io.File表示某些连接的存储设备上物理存在(或不存在)的文件的名称。

另一方面,ZipEntry只是一些元数据,可帮助您访问.zip文件中特定条目的内容。

回答你的第一个问题:如果你必须有一个java.io.File实例,那么最快的方法是将整个zip文件(或你想要的部分)提取到磁盘上,然后使用File from then on 。

但是,很可能您想要做的事情不需要使用文件,而是可以使用InputStream。在这种情况下,您可以只提供您在那里的stream实例。这将提供更好的性能,并避免使用文件系统(创建文件,使用它们,确保清理等)。

答案 1 :(得分:1)

您需要创建一个ZipFile对象来迭代其条目。 尝试:

ZipFile zipFile = new ZipFile(zfc.getSelectedFile());

...然后继续您链接的示例。