2015-06-27 226 views
1

根据API,Java的ImageIO (javax.imageio.ImageIO).read()方法提供了几种重载方法。Java ImageIO.read(文件与URL)

这些方法的两个是:

ImageIO.read(File input) 
ImageIO.read(URL input) 

甲骨文教程网站使用的文件的方法ImageIO.read(File input)读。不过,我看到很多程序员编写的例子更喜欢使用URL方法ImageIO.read(URL input)

〔实施例:

img = ImageIO.read(new File("myImage.png")); 
         vs 
img = ImageIO.read(getClass().getResource("images/myImage.png")); 

我的问题是:如果我只编码一个Java桌面应用(而不是Java小程序)。使用URL方法比其他方法有显着的优势吗?


注意:有类似职务任职于SO:Using URL or File (in ImageIO.read)

但这个问题在IDE具体地址。但我并不是要求基于任何特定的IDE,但通常有一个优于其他的优势。

回答

2

..有没有比另一个有什么突出的优势?

URL可以参考的地方在互联网上,用户的本地文件系统中的文件,或资源的JAR文件中 - 一个

A File可以引用用户本地文件系统上的文件,以及..就是这样。

因此,除非阅读/ 编写访问是需要的资源,我会去与URL,因为它更通用。

+0

所以唯一的优点是多功能性,也许它也更安全的使用URL方法,因为它也可以读取嵌入式资源,如从'JAR'。我有权这么说吗? – user3437460

+0

*“所以唯一的优点是多功能性......”*你想要多少优势?*一个足以让我达到网址。 *“..也许它更安全......”*我称之为'前瞻性思维'。毕竟,如果应用程序。变成分布式(通常是一个罐子)。 'File'将会非常可靠地失败。和'URL'一样可靠。所以没有那么'安全','没有完全破碎'。 –

+0

非常感谢您的回复。你还可以解释一下你的最后一句话:除非需要对资源进行读/写访问,否则我会使用URL,因为它具有更多功能。当需要写访问时,'File'如何比'网址的方法呢? – user3437460

0

将档案保存在归档内比将档案留在档案系统中总是更好。假设您想分发JAR文件。那么它将无法在其他电脑上正常工作。此外,可能会错误地删除这些文件。另一方面,JAR档案意味着不可编辑。保持JAR内部的更好选择。如果想从互联网上下来,故事是不同的。