Java ImageIO.read(文件对比 URL)

Java ImageIO.read(File vs URL)

根据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 小程序)编码。使用 URL 方法比其他方法有显着优势吗?


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

但是这个问题专门针对IDE。但我不是基于任何特定的问题 IDE,而是一般来说两者之间有什么突出的优势吗?

..is there any prominent advantage for one over the other?

URL 可以引用 Internet 上的某个位置、用户本地文件系统上的文件或 Jar 文件中的资源 - .

A File 可以引用用户本地文件系统上的文件,并且.. 好吧,仅此而已。

因此,除非需要对资源进行读取/写入 访问,否则我会选择 URL,因为它更通用。

将资源保存在存档中总是比将文件保存在文件系统中更好。假设您要分发 JAR 文件。那么它将无法在其他计算机上正常工作。而且可能会误删除那些文件。另一方面,JAR 档案是不可编辑的。保存在 JAR 中的更好选择。如果想从互联网上掉线,情况就不同了。