Java ImageIO.read(文件与URL)

时间:2015-06-27 19:12:40

标签: java swing file url javax.imageio

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

其中两种方法是:

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

Oracle教程网站使用读取文件方法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 applet)。使用URL方法比其他方法有显着优势吗?

注意:SO中有一个标题相似的帖子:Using URL or File (in ImageIO.read)

但是这个问题专门针对IDE。但我并不是基于任何特定的IDE提出要求,但通常一方面有哪些突出优势?

2 个答案:

答案 0 :(得分:2)

  

..一方面有什么显着优势?

URL可以指代互联网上的位置,用户本地文件系统上的文件或Jar文件中的资源 -

File可以引用用户本地文件系统上的文件,并且......好吧,就是它。

因此,除非资源需要读取/ 写入,否则我会使用该网址,因为它更具通用性。

答案 1 :(得分:0)

将资源保留在归档文件中总是比将文件保留在文件系统中更好。假设您要分发JAR文件。然后它将无法在其他计算机上正常工作。此外,人们可能会错误地删除这些文件。另一方面,JAR档案是不可编辑的。保持JAR内部的更好选择。如果想从互联网上删除,故事就不同了。