我想将多个zip文件下载为一个请求的zip文件。 我有像C,https://test12.zip等的zip文件路径。那么如何将这些文件作为一个zip文件下载。我一直在寻找这个。我得到的只是下载多个文件(本地)和压缩文件的示例。这是我尝试下载一个文件。对于多个文件,它将无法正常工作。
URL url = new URL("https://test12.zip");
URLConnection connection = url.openConnection();
InputStream stream = connection.getInputStream();
BufferedOutputStream outs = new BufferedOutputStream(response.getOutputStream());
int len;
byte[] buf = new byte[1024];
while ((len = stream.read(buf)) > 0) {
outs.write(buf, 0, len);
}
outs.close();
非常感谢任何帮助。
答案 0 :(得分:0)
ZIP文件由两部分组成:首先是压缩文件条目(文件名,属性和数据),文件末尾有一个中心目录,其中包含所有条目的列表,同样具有文件名和属性。
因此,您无法直接组合或连接zip文件。在Java中,您只能动态解压缩下载的zip文件(不将其存储在文件系统中),同时使用解压缩的内容创建新的组合ZIP文件:
首先为您要创建的zip文件创建一个ZipOutputStream
。
然后使用每次下载的InputStream
并将其与ZipInputStream
一起使用。
迭代每个ZipInputStream
中的所有条目,并为每个条目在ZipOutputStream
中创建一个新的相同条目,并将内容从ZipInputStream
复制到ZipOutputStream
。
如何使用ZipInputStream
例如:https://stackoverflow.com/a/36648504/150978