在我的情况下,我必须从我的网络应用程序中的资源文件夹下载图像。现在我使用以下代码通过URL下载图像。
url = new URL(properties.getOesServerURL() + "//resources//WebFiles//images//" + imgPath);
filename = url.getFile();
is = url.openStream();
os = new FileOutputStream(sClientPhysicalPath + "//resources//WebFiles//images//" + imgPath);
b = new byte[2048];
while ((length = is.read(b)) != -1) {
os.write(b, 0, length);
}
但是我想要一次操作来一次读取所有图像并为此创建一个zip文件。 我不太了解序列输入流和zip输入流的使用,所以如果可以通过这些,请告诉我。
答案 0 :(得分:7)
我能看到你能做到这一点的唯一方法如下:
try {
ZipOutputStream zip = new ZipOutputStream(new FileOutputStream("C:/archive.zip"));
//GetImgURLs() is however you get your image URLs
for(URL imgURL : GetImgURLs()) {
is = imgURL.openStream();
zip.putNextEntry(new ZipEntry(imgURL.getFile()));
int length;
byte[] b = new byte[2048];
while((length = is.read(b)) > 0) {
zip.write(b, 0, length);
}
zip.closeEntry();
is.close();
}
zip.close();
}
答案 1 :(得分:2)
网址应该返回zip文件。否则,您必须逐个使用您的程序
创建一个zip