9

就我而言,我必须从我的网络应用程序的资源文件夹中下载图像。现在我正在使用以下代码通过 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 文件。我不太了解序列输入流和压缩输入流的使用,所以如果可以通过这些,请告诉我。

4

2 回答 2

8

我能看到你能够做到这一点的唯一方法是如下所示:

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();
}

参考:ZipOutputStream 示例

于 2013-08-24T12:38:26.047 回答
2

该网址应返回 zip 文件。否则,您必须一个一个地使用您的程序创建一个 zip

于 2013-08-24T10:00:29.830 回答