我正在尝试从网址下载image
...我的代码是:
String url = "http://mysite.com/image.xyz"
其中xyz
可以是jpg / png / jpeg ..
现在可以使用
从网址读取图片了BufferedImage image = ImageIO.read(url);
现在我需要的是使用以下方法将图像写入文件:
ImageIO.write(image, "variable" , new File("C:\\out1.jpg"));
我需要将variable
的值替换为xyz
...的值,其中xyz的值将是来自网址的extracted
....
那么如何实现这个........
答案 0 :(得分:2)
使用java.net.URL类:
URL u = new URL(url);
String name = u.getFile();
String ext = name.substring(name.lastIndexOf(".") + 1);
在分机中你有扩展名。
[编辑]
关于其他答案的一些注释:
除非你碰巧有一个带有查询参数的网址(例如http://www.example.org/folder/file.png?size=big),否则它们都是很好的答案。
使用最后三个字符,它将返回“big”而不是png。
此外,如果图像是.jpeg,它将返回“peg”。
简单地在最后使用“。”在字符串中也是危险的,或多或少与查询参数的原因相同:它会返回“.png?size = big”。
java.net.URL将考虑所有这些情况,并仅返回文件名。对于那里,提取扩展仍然是“找到点”的问题,但至少在已经清理过的字符串上。
答案 1 :(得分:1)
为什么不在最后一个点之后取出子串呢?
或者使用Apache Commons FileIO的类FilenameUtils
,它提供了一种从路径获取扩展的方法。
请注意,您可能还想将该扩展名添加到输出文件中,如果out.jpg
实际上是PNG文件,则可能会感到困惑。