如何将InputStream转换为ZIP格式?

4 java zip dwr

我有一个 InputStream 对象,它实际上是一个 zip 文件。我想将其改回 zip 文件并保存。我正在使用 DWR 的 FileTransfer 类对象来接收客户端上传的数据。

FileTransfer有 3 个方法,getInputStream()是其中之一。它从 FileTransfer 对象返回 InputStream。

就我而言,fileTransfer 对象也保存 zip 文件以及 InputStream 对象。我已经在谷歌上做了很多搜索。但我找不到一个示例来说明 InputStream 到 zip 转换。

更新

String zipName = file.getName();
String zipType = file.getMimeType();
InputStream zipStream = file.getInputStream();
ZipInputStream zis = new ZipInputStream(zipStream);
System.out.println("File Name: "+zipName+"\n"+"File Type: "+zipType);
int c;
File f2 = new File(DATA_STORE_LOC+dat+".zip");
path.setPath2(DATA_STORE_LOC+dat+".zip");
FileOutputStream fos = new FileOutputStream(f2);
ZipOutputStream zos = new ZipOutputStream(fos);
c = zis.read();
System.out.println(c);
while ((c = zis.read(BUFFER)) != -1) {
zos.write(BUFFER, 0, c);
}
zos.close();
zis.close();
Run Code Online (Sandbox Code Playgroud)

我通过考虑典型的文件复制程序尝试了这段代码。我知道这是假的,只是尝试过。它给了我java.util.zip.ZipException: ZIP file must have at least one entry

任何建议将非常感激!!!!

Don*_*oby 5

如果您的输入是 zip 文件中的一个InputStream,并且您想要的输出仍然是具有相同内容的 zip 文件,那么您只是在执行文件复制操作,根本不必担心 zip。您只需要或多或少地从 a 读取InputStream并写入 a ,但不必担心将任一流包装在可识别 zip 的流中。FileOutputStream

ZipInputStream如果您必须将 zip 文件的内容提取为单独的文件(即以编程方式解压缩),则此命令很有用。另一方面,ZipOutputStream如果您有内容并且需要将它们组合成 zip 文件,则使用。