getResourceAsStreamメソッドによってJavaのgetResourceAsStream使用のプロジェクトに指定されたリソースを取得します。

getResourceAsStream法により、プロジェクト内の指定されたリソースを取得します。

:SRCの下にリソースを取得します。

    1)、Class.getResourceAsStream(文字列のパス):「/」は、ルートのクラスパスの先頭からであるとパスは、そのようなリソースが最初に撮影したパッケージから「/」デフォルトではありませんが(すなわち、「/」は、SRCを表します)を取得します。それだけでパス、絶対パスを構築することであり、そして最終的にはクラスローダによってリソースへのアクセス。

            例:

                    A)、同じディレクトリにある:com.xyの下であなたが使用する必要があり、同じディレクトリ内のリソースファイルmyfile.xmlながら、クラスme.classを持っている:me.class.getResourceAsStream(「myfile.xmlを」);

                    B)、サブディレクトリにします。例:com.xyでcom.xyfileディレクトリ内のリソースファイルmyfile.xmlながら、クラスme.classを持っている、あなたはme.class.getResourceAsStream(「ファイル/ myfile.xml」を使用する必要があります);

    2)、Class.getClassLoader.getResourceAsStream(文字列のパス):デフォルトは、ルートクラスパスから取得され、パス「/」で開始しない、最終的にリソースクラスローダによって取得されます。

            例:

                   A)、ないと同じディレクトリの下に、またサブディレクトリに:たとえば:com.xyではあなたが使用する必要があり、com.x.fileディレクトリ内のリソースファイルmyfile.xmlながら、クラスme.classがありますme.class .getClassLoader.getResourceAsStream( "COM / X /ファイル / myfile.xml");

2:Webプロジェクトで指定されたリソースを取得します。

    1)、のServletContext getResourceAsStream。(文字列のパス):デフォルト(つまり、Webアプリケーションのルートから、次のとおりです(srcフォルダの下のWebファイルと同じレベルを持つサーバーで公開されるプロジェクトのルートディレクトリ))の下でリソースを取るために、パス「かどうか/ 「初めは問題ではありません。

           例:

                A)、Webプロジェクトのmyfile.xmlファイルのルートであり、あなたが使用する必要があります。

。getServleContext()getResourceAsStream( "myfile.xml");

    2)、組み込みオブジェクトのアプリケーションは、JSPのServletContext実装上の一種です。

 

getResourceAsStreamでのJavaの使用法

まず、JavaはgetResourceAsStreamは、次のとおりている: 
1。Class.getResourceAsStream(文字列のパス):パスを開始することではありませんデフォルトから「/」リソースが取られているが「/」は、ルートのクラスパスの先頭からであると、このようなパッケージに位置しています買収の下で。それだけでパス、絶対パスを構築することであり、そして最終的にはクラスローダによってリソースへのアクセス。 

2. Class.getClassLoader.getResourceAsStream(文字列のパス):デフォルトはルートのクラスパスから取得され、パスが「/」で始まっていないが、最終的にリソースクラスローダによって取得されます。 

3.のServletContext getResourceAsStream(文字列のパス) : リソースのルートディレクトリから取得したデフォルトのWebAppは、Tomcatは大手パスは「/」もちろん、この特定のコンテナとは、実装依存である、重要ではありませんか。 

ビルトインオブジェクト内のアプリケーションは、4以上のJSPのサーブレットコンテキストの実装の一種です。 

第二に、次のカテゴリのgetResourceAsStream用法: 

まず:例えば、同じディレクトリ内のファイルと.classファイルをロードするには:リソースファイルmyfile.xmlながらクラスは、com.xy下がme.classされている 

ので、以下のように、そこにあるべきコード: 

me.class.getResourceAsStream(「myfile.xml」); 

第二:例えばサブディレクトリにme.classディレクトリ:そこcom.xy下クラスme.class、一方ディレクトリcom.xyfileにおけるリソースファイルmyfile.xml 

、その後、次のコードを持っている必要があります。 

me.class.getResourceAsStream(「ファイル/ myfile.xml」)  ;

第三:ないme.classディレクトリの下またはサブディレクトリで、例えば:com.xy下にあったクラスme.class、com.x.fileながら、リソースファイルのディレクトリmyfile.xmlがある 

次のコードがあるはずなので、: 

me.class.getResourceAsStream(「/ COM / X- /ファイル/ myfile.xml」); 

サムアップ、それはちょうど2つの方法かもしれない 

最初:「/が先行します「 

」/「MyProjectと呼ばれる、そのようなプロジェクト名として、プロジェクトのルートディレクトリを表し、」/「MyProjectとを表す 

me.class.getResourceAsStream(」/ COM / X- /ファイル/ myfile.xml「); 

第二:/」が付いていません「 

カレントディレクトリクラスを表す 

(myfile.xml」)me.class.getResourceAsStreamを「; 

me.class.getResourceAsStream(」ファイル/ myfile.xml「); 

そして最後に、自分の理解を: 
ファイルパスgetResourceAsStreamは限ら読み、エンジニアリングソースフォルダは、プロジェクトで、srcの根を含み、およびパケットタイプ内部の任意の位置が、他のファイルに加えて、コンフィギュレーション・ファイルのソースフォルダ場合、この方法はとりません。

おすすめ

転載: www.cnblogs.com/Lee-yl/p/11459641.html