我一直在尝试通过java从url下载图像。
我试图用很多方法解决它,但我没有成功。
我正在写我的方式,希望有人能找到哪里出错了:
使用第一种和第二种方式,当我尝试打开图像时出现以下错误:
... file appears to be damaged, corrupted, or is too large
...它的大小比它应该的要小。
我想这与编码有关。
第一种方式:
URL url = new URL("http://www.avajava.com/images/avajavalogo.jpg");
InputStream in = url.openStream();
Files.copy(in, Paths.get("someFile.jpg"), StandardCopyOption.REPLACE_EXISTING);
in.close();
第二种方式:
File f= new File("c:\\image.jpg");
URL myUrl = new URL("http://www.avajava.com/images/avajavalogo.jpg");
FileUtils.copyURLToFile(myUrl, f);
使用方式 3,我在
thread "main" java.lang.IllegalArgumentException: image == null!
中得到异常第三种方式:
URL url = new URL("http://www.avajava.com/images/avajavalogo.jpg");
BufferedImage img = ImageIO.read(url);
File file = new File("downloaded.jpg");
ImageIO.write(img, "jpg", file);
我真的需要你的帮助!!!很久以前我一直试图解决它,但没有成功。
提前致谢!!!
最佳答案
您必须以方式 3 指定目标文件的完整位置:
URL url = new URL("http://www.avajava.com/images/avajavalogo.jpg");
BufferedImage img = ImageIO.read(url);
File file = new File("D:\\image\\downloaded.jpg");
ImageIO.write(img, "jpg", file);
关于java - 如何从java中的url下载图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39641509/