2015-06-27 56 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內部的更好選擇。如果想從互聯網上下來,故事是不同的。