Java:静的メソッドのgetResourceAsStream
プロジェクトclasspathのプロパティファイル。
config.properties
#config file json.filepath =/Users/mkyong/Documents/workspace/SnakeCrawler/data/.... === 1.非静的メソッド 通常、上記のプロパティファイルには `getClass()。getClassLoader()。getResourceAsStream`を介してアクセスできます。
package com.mkyong.crawler.util;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class FileHelper {
public String getFilePathToSave() {
Properties prop = new Properties(); String filePath = "";
try {
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("config.properties");
prop.load(inputStream); filePath = prop.getProperty("json.filepath");
} catch (IOException e) { e.printStackTrace(); }
return filePath;
}
}
それを実行します。
FileHelper helper = new FileHelper();
String filePath = helper.getFilePathToSave();
=== 2.静的メソッド `getFilePathToSave()`メソッドが `static`メソッドに変換された場合、` getClass() `メソッドは失敗し、" __ Object__型から非静的メソッドgetClass()への静的参照を作成できません "というプロンプトが出されます。 代わりに、 `CurrentClass.class.getClassLoader()。getResourceAsStream`を使うべきです。
package com.mkyong.crawler.util;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class FileHelper {
public static String getFilePathToSave() {
Properties prop = new Properties(); String filePath = "";
try {
InputStream inputStream = FileHelper.class.getClassLoader().getResourceAsStream("config.properties");
prop.load(inputStream); filePath = prop.getProperty("json.filepath");
} catch (IOException e) { e.printStackTrace(); }
return filePath;
}
}
String filePath = FileHelper.getFilePathToSave();
=== 参考文献 . http://www.dzone.com/snippets/loading-property-file[Dzone - Loading A クラスパスからのプロパティファイル]。 http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html[Java ClassLoader JavaDoc] link://tag/java/[java]link://タグ/properties-file/[プロパティファイル]