ClassLoader getResourceAsStream()を使用しようとしています
私のDirecoryの構造は次のようになります。
_Project1
-src
-main
-Java
-webapp
-WEB-INF
-MYLOC
-someprops.properties
_
classloader.getResourceAsStream("MYLOC/someprops.properties")
の場合は正常に機能します。
しかし、_C:\someprops.properties
_のように、プロパティファイルを.warの外に移動する必要があります。
ただし、classloader.getResourceAsStream("C:\someprops.properties")
は機能しません。絶対パスを使用できませんか?
ネイティブファイルパスがある場合は、getResourceAsStream
を使用する必要はなく、通常の方法でFileInputStream
を作成するだけです。
Properties props = new Properties();
FileInputStream in = new FileInputStream("C:\\someprops.properties");
try {
props.load(in);
} finally {
in.close();
}
(ファイルが大きい場合は、FileInputStream
をBufferedInputStream
でラップすることをお勧めします)
メソッドclassloader.getResourceAsStream
は、クラスパス上のリソースを検索します。 someprops.properties
ファイルをclassloader.getResourceAsStream
とともにロードする場合は、それをクラスパスに追加します。それ以外の場合、これがプロパティファイルの場合は、いつでも Properties.load メソッドを使用できます。