ホームページ > Java > &#&チュートリアル > 異なるアプリケーションサーバーにファイルをロードするにはどの `InputStream` メソッドを使用する必要がありますか?

異なるアプリケーションサーバーにファイルをロードするにはどの `InputStream` メソッドを使用する必要がありますか?

Susan Sarandon
リリース: 2024-12-16 18:47:15
オリジナル
934 人が閲覧しました

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

ファイルのロードにさまざまな InputStream メソッドを使用する

InputStream としてファイルをロードするには、プログラマが考慮すべきいくつかのオプションがあります。この談話では、3 つの一般的なものを比較対照します。メソッド:

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

メソッド解釈の違い

これらのメソッドの主な違いは、提供された fileName をどのように解釈するかにあります。 ClassLoader.getResourceAsStream() と Class.getResourceAsStream() は異なるアプローチを使用します。

Class.getResourceAsStream(path):

  • パスを、呼び出しクラスのパッケージ。
  • 例: String.class.getResourceAsStream("myfile.txt") は、クラスパスで "java/lang/myfile.txt" を検索します。
  • 最初の "/" は、クラスパスのルートから始まる絶対パスを示します。 .
  • 例: String.class.getResourceAsStream("/myfile.txt") は、"./myfile.txt" を検索します。クラスパス。

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート