gpt4 book ai didi

java - 使用 Java 通过 http 批量下载图像的好方法

转载 作者:搜寻专家 更新时间:2023-10-31 19:58:11 24 4
gpt4 key购买 nike

我们有一个 Web 应用程序需要通过 http 从合作伙伴站点导入 10-20 张图像。如果我有一个代表我要下载的 url 的字符串列表,有人对如何尽快下载它们有建议吗?

我可以将它们放在一个 for 循环中,但如果有一种简单的方法可以将其并行化,那么它可能对最终用户有好处。我想避免直接使用 Java 线程,尽管执行程序框架可能是个好主意。

有什么想法吗?

最佳答案

这是我使用 Resty 的结果. (免责声明:我是 Resty 的作者)下载命令行中给出的所有 URL 并打印出文件名。

package us.monoid.web.parallel;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

import us.monoid.web.Resty;

public class Downloader {

public static void main(String[] args) throws InterruptedException, ExecutionException {
ExecutorService pool = Executors.newFixedThreadPool(10);
List<Callable<File>> tasks = new ArrayList<Callable<File>>(args.length);
for (final String url : args) {
tasks.add(new Callable<File>() {
public File call() throws Exception {
return new Resty().bytes(url).save(File.createTempFile("img", ".png"));
}
});
}
List<Future<File>> results = pool.invokeAll(tasks);
for (Future<File> ff : results) {
System.out.println(ff.get());
}
}

}

关于java - 使用 Java 通过 http 批量下载图像的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6103952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com