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実装上の一種です。
まず、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の根を含み、およびパケットタイプ内部の任意の位置が、他のファイルに加えて、コンフィギュレーション・ファイルのソースフォルダ場合、この方法はとりません。