这是交易,我在大学网络办公室工作,我们为大学部门和俱乐部提供一些网站模板。我的任务是构建一个Web表单,允许他们选择他们想要的模板并提供一个标题,该标题将以编程方式插入到他们在下载之前选择的模板中。
我的问题是,我可以将模板拉入内存,插入标题并将其输出到zip存档而无需将临时文件写入磁盘吗?
Java的ZipEntry似乎需要一个文件名,不能简单地使用内存中的数据。
答案 0 :(得分:4)
不,名称“文件名”在这里可能有点令人困惑,但它表示您正在创建的ZIP存档中的条目的文件名。看一下ZipOutputStream。它创建为每个其他输出流的包装器,FileOutputStream
或ByteArrayOutputStream
。使用ByteArrayOutputStream
,您可以在内存中完全创建zip存档。
答案 1 :(得分:1)
这是因为与GZIP不同,ZIP可以压缩多个文件。
因此,虽然您必须提供文件名(将记录在zip文件中),但这并不意味着文件必须存在于文件系统中。它只是存档中文件的名称。