簡體   English   中英

從classpath vs文件系統加載Java文件,哪個更好?

[英]Java loading file from classpath vs file system, which is better?

假設我想加載一個圖像,“img.gif”,從.JAR加載它或從硬盤加載它會更好嗎? 哪個更有效(速度和內存使用),還是它們基本相同? 我知道從類路徑加載可能更方便,但我無視這一點。

從jar中包裝的資源加載通常更好,因為您可以保證資源始終存在。 將資源放在文件系統上的其他位置會增加它移動或消失的可能性。

jar中的資源也使jar更具可移植性,並且可以在具有不同文件系統的不同操作系統上或在具有不同文件夾結構的不同機器上使用。

我不確定你是否會注意到速度差異。

過早優化的氣味,但JAR文件是一種寫在硬盤上的ZIP文件。 由於直接讀取硬盤驅動器上的字節可以避免解壓縮,因此可能更快。 當然,您只需要讀取和解壓縮一次。 最后,圖像通常不能用LZW壓縮,但jar在軟件部署和維護方面提供了額外的優勢。

此外,您必須考慮在將文件加載到網頁上時,JAR文件加載速度更快,功能更快,因為它們允許您在單個HTTP事務中加載所有文件,而不是為每個文件打開新連接。

如果這是某個Web應用程序的一部分,那么您可能希望將GIF放在硬盤中的某個位置,然后在代碼中引用該路徑。 這樣,您也可以提供一些安全性。 如果將它放在JAR中,它就成了應用程序本身的一部分。 重要的是不要公開文件的位置,而是寫一些包裝類來傳輸這個GIF文件。

如果它是一個控制台應用程序,那么最好將它與應用程序保持在一起(如在JAR中)以使您的應用程序可移植。

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM