首頁 >Java >java教程 >我應該使用哪種'InputStream”方法來載入不同應用程式伺服器中的檔案?

我應該使用哪種'InputStream”方法來載入不同應用程式伺服器中的檔案?

Susan Sarandon
Susan Sarandon原創
2024-12-16 18:47:15935瀏覽

Which `InputStream` Method Should I Use to Load Files in Different Application Servers?

使用各種InputStream方法進行文件加載

要將文件作為InputStream加載,程式設計師有多種選擇需要考慮。本文比較和比較了三種常見的方法:

  1. this.getClass().getClassLoader().getResourceAsStream(fileName)
  2. Thread .currentThread().getCont extClassLoader().getResourceAsStream(fileName)
  3. this.getClass().getRe sourceAsStream(fileName)

方法解釋差異

這些方法之間的主要區別在於它們如何解釋提供的檔案名稱。 ClassLoader.getResourceAsStream() 和Class.getResourceAsStream() 使用不同的方法:

Class.getResourceAsStream(path):

  • 將path 視為呼叫類別的包。
  • 範例: String.class.getResourceAsStream("myfile.txt") 在類別路徑中搜尋「java/lang/myfile.txt」。
  • 開頭的「/」表示絕對路徑,從類別路徑的根目錄開始.
  • 範例:String.class.getResourceAsStream("/myfile.txt") 在中搜尋「./ myfile.txt” classpath。

ClassLoader.getResourceAsStream(path):

  • 將所有路徑視為絕對路徑。
  • 範例:字串。 class.getClassLoader().getResourceAsStream("myfile.txt") 和String.class.getClassLoader().getResourceAsStream("/myfile.txt") 都在類別路徑中搜尋「./myfile.txt」。

適用性注意事項

在您的具體情況下,在WebSphere 6.1 中部署時,您應該使用Thread.currentThread() .getContextClassLoader().getResourceAsStream(fileName)。此選擇符合在應用程式伺服器環境中載入資源的建議實務。 this.getClass().getResourceAsStream() 也適合這種情況。

Tomcat 使用者的其他注意事項

對於執行的Tomcat 使用者8 之前的版本,請注意ClassLoader.getResourceAsStream() 和Class.getResourceAsStream() 的行為可能與預期的。確保您徹底評估程式碼在這些環境中的行為。

以上是我應該使用哪種'InputStream”方法來載入不同應用程式伺服器中的檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn