検索
ホームページJava&#&チュートリアルJavaでファイルをInputStreamとしてロードする最良の方法は何ですか?

What's the Best Way to Load a File as an InputStream in Java?

InputStream としてファイルをロードするさまざまな方法

概要:

Java は複数の方法を提供しますファイルをInputStreamとしてロードするメソッド。この記事では、次のアプローチの違いについて説明します。

  • InputStream is = this.getClass().getClassLoader().getResourceAsStream(fileName)
  • InputStream is = Thread.currentThread() .getContextClassLoader().getResourceAsStream(fileName)
  • InputStream は = this.getClass().getResourceAsStream(fileName)

fileName パラメータの解釈:

各メソッドは、fileName パラメータを異なる方法で解釈します。 ClassLoader.getResourceAsStream() はすべてのパスを絶対パスとして扱いますが、Class.getResourceAsStream() はそれらのパスを呼び出しクラスのパッケージに対して相対的なものと見なします。

適切な使用例:

1. Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName)

の使用 このメソッドは、アプリケーションのクラスパスの一部であり、呼び出し元と同じ JAR または EAR 内にパッケージ化されたファイルをロードする場合に推奨されます。クラス。これにより、クラスまたはパッケージの場所に関係なく、クラスパス リソースへのアクセスが提供されます。

2. this.getClass().getResourceAsStream(fileName)

の使用 このメソッドは、呼び出しクラスと同じパッケージにあるファイルをロードするのに適しています。これは、ファイルが JAR 内にパッケージ化されており、クラスパス経由でアクセスできる場合に特に便利です。

3. this.getClass().getClassLoader().getResourceAsStream(fileName)

の使用 このメソッドは Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName) に似ていますが、あまり一般的ではありません。また、アプリケーションのクラスパスからファイルをロードしますが、その動作はクラスローダーの実装によって異なる場合があります。

Tomcat 7 ユーザーへの警告:

Tomcat 7 以前では、ClassLoader.getResourceAsStream() および Class.getResourceAsStream() は、スラッシュ (/) を含むリソース名を一貫して処理できない可能性があります。 Javadoc によって指定されます。これらの方法を使用するときは、常に正規化が正しいことを確認してください。

以上がJavaでファイルをInputStreamとしてロードする最良の方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Javaのマスター:そのコア機能と機能を理解するJavaのマスター:そのコア機能と機能を理解するMay 07, 2025 pm 06:49 PM

Javaのコア機能には、プラットフォームの独立性、オブジェクト指向のデザイン、豊富な標準ライブラリが含まれます。 1)オブジェクト指向の設計により、コードは多型機能を通じてより柔軟で保守可能になります。 2)ゴミ収集メカニズムは、開発者のメモリ管理の負担を解放しますが、パフォーマンスの問題を回避するために最適化する必要があります。 3)標準ライブラリは、コレクションからネットワークまでの強力なツールを提供しますが、コードを簡潔に保つためにデータ構造を慎重に選択する必要があります。

Javaはどこでも実行できますか?Javaはどこでも実行できますか?May 07, 2025 pm 06:41 PM

はい、javacanruneverywhereduetoits "writeonce、runanywhere"哲学 "哲学

JDKとJVMの違いは何ですか?JDKとJVMの違いは何ですか?May 07, 2025 pm 05:21 PM

jdkincludestoolsfordeveloping and compilingjavacode、whilejvmrunsthecompiledbytecode.1)jdkcontainsjre、compiler、andutitivities.2)jvmmanagesbytecodeexexecutionandsupports "writeonce、runany。

Java機能:クイックガイドJava機能:クイックガイドMay 07, 2025 pm 05:17 PM

Javaの主な機能には、1)オブジェクト指向設計、2)プラットフォームの独立性、3)ガベージ収集メカニズム、4)豊富なライブラリとフレームワーク、5)並行性サポート、6)例外処理、7)連続進化。 Javaのこれらの機能により、効率的で保守可能なソフトウェアを開発するための強力なツールになります。

Java Platform Independence説明:包括的なガイドJava Platform Independence説明:包括的なガイドMay 07, 2025 pm 04:53 PM

javaachievesplatformedentenceThetherdthejvm.1)codecompiledintobytecode、notmachinecode.2)thejvminterpretsbytecodeonanyplatform、「writeonce、runany」を保証します

プラットフォームの独立性は、エンタープライズレベルのJavaアプリケーションにどのように利益をもたらしますか?プラットフォームの独立性は、エンタープライズレベルのJavaアプリケーションにどのように利益をもたらしますか?May 03, 2025 am 12:23 AM

Javaは、プラットフォームの独立性により、エンタープライズレベルのアプリケーションで広く使用されています。 1)プラットフォームの独立性は、Java Virtual Machine(JVM)を介して実装されているため、Javaをサポートする任意のプラットフォームでコードを実行できます。 2)クロスプラットフォームの展開と開発プロセスを簡素化し、柔軟性とスケーラビリティを高めます。 3)ただし、パフォーマンスの違いとサードパーティライブラリの互換性に注意を払い、純粋なJavaコードやクロスプラットフォームテストの使用などのベストプラクティスを採用する必要があります。

プラットフォームの独立性を考慮して、JavaはIoT(Thingのインターネット)デバイスの開発においてどのような役割を果たしますか?プラットフォームの独立性を考慮して、JavaはIoT(Thingのインターネット)デバイスの開発においてどのような役割を果たしますか?May 03, 2025 am 12:22 AM

javaplaysasificanificantduetduetoitsplatformindepence.1)itallowscodetobewrittendunonvariousdevices.2)java'secosystemprovidesutionforiot.3)そのセキュリティフィートルセンハンス系

Javaでプラットフォーム固有の問題に遭遇したシナリオと、どのように解決したかを説明してください。Javaでプラットフォーム固有の問題に遭遇したシナリオと、どのように解決したかを説明してください。May 03, 2025 am 12:21 AM

TheSolution to HandlefilepathsaCrosswindossandlinuxinjavaistousepaths.get()fromthejava.nio.filepackage.1)usesystem.getProperty( "user.dir")およびhearterativepathtoconstructurctthefilepath.2)

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター