使用java

时间:2016-06-22 18:50:04

标签: java file filesystems zip nio

您好我正在尝试编写一个程序来读取输入文件中的字节块(基于偏移量和长度) - 在我读取它时将它们存储在字节数组中。

对于每个块,我需要调用下面的方法直接在zip文件中创建一个文件 - 这个文件的内容将是字节数组中的内容。

这是我的方法 -

public void addBytesToZip(String zipPath, byte[] contentBytes, String outputFileName) throws Exception
    {
        if (zipfs == null){         
            zipfs = createZipFileSystem(zipPath);
        }

        Path zipFilePath = zipfs.getPath(outputFileName);

        Files.write(zipFilePath, contentBytes, StandardOpenOption.CREATE_NEW);

    }

createZipFileSystem方法在我指定的位置成功创建一个空zip文件。我正在使用FileSystems.newFileSystem来做到这一点。

字节数组在此方法中具有正确的内容 - 当我将其写入zip之外的文件时,它可以工作。

只有不起作用的步骤是Files.write(zipFilePath,contentBytes,StandardOpenOption.CREATE_NEW);线

我传递给此方法的值是 -

String zipPath =" C:/Users/xyz/Desktop/ZippingUtilOutput/packge.zip" ;; ----这是zip文件的路径

String outputFileName =" /file1.tiff" ;; ---这是要在zip中创建的文件的名称,其中包含字节数组的内容(contentBytes)

没有抛出异常。 write方法的输出只是" /file1.tiff"

希望有人可以帮助我,我将不胜感激!

1 个答案:

答案 0 :(得分:0)

我终于明白了。写命令后我没有关闭FileSystem!

添加了zipfs.close();