您好我正在尝试编写一个程序来读取输入文件中的字节块(基于偏移量和长度) - 在我读取它时将它们存储在字节数组中。
对于每个块,我需要调用下面的方法直接在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"
希望有人可以帮助我,我将不胜感激!
答案 0 :(得分:0)
我终于明白了。写命令后我没有关闭FileSystem!
添加了zipfs.close();