2012-03-05 98 views
1

可能重复:
In Java: How to zip file from byte[] array?如何从内存中的生成文件创建Java压缩归档文件?

事情是这样的,我在一所大学的网络办公,我们提供大学院系和俱乐部的几个网站模板。我一直负责构建一个Web表单,这将允许他们选择他们想要的模板,并提供一个标题,它将以编程方式插入到他们选择的模板中,然后才能下载。

我的问题是,我可以将模板拉入内存,插入标题并将其输出到一个zip档案而不写入临时文件到磁盘

Java的ZipEntry似乎需要一个文件名,并且不能简单地使用已经在内存中的数据。

回答

4

不,名称“文件名”在这里可能有点混淆,但它意味着您正在创建的ZIP归档文件中的条目的文件名。看看ZipOutputStream。它被创建为每个其他输出流的包装,可以是FileOutputStreamByteArrayOutputStream。使用ByteArrayOutputStream,您可以在内存中完全创建zip存档。

+0

所以'文件名'只是指定文件的名称会出现什么时候有人解压缩档案? – jcksncllwy 2012-03-06 01:53:15

1

这是因为不像GZIP,ZIP可以压缩多个文件。

所以,虽然你必须提供一个文件名(它将被记录在zip文件中),但这并不意味着文件必须物理存在于文件系统中。这只是将在档案中给予该文件的名称。

相关问题