使用 getClassLoader() 解析 .properties 文件
Parsing a .properties file with getClassLoader()
我正在编写一个 Java 程序,它接受一个 foo.properties
文件并将其解析为一个 Properties
对象。快速搜索后,我找到了这段代码:
public Properties getProperties() throws IOException{
String fileIn = "foo.properties";
Properties p = new Properties();
InputStream inStream = getClass().getClassLoader().getResourceAsStream(fileIn);
if(inStream != null) {
p.load(inStream);
} else throw new FileNotFoundException();
return p;
}
我的问题涉及第 4 行:为什么上面的代码使用 InputStream inStream = getClass().getClassLoader().getResourceAsStream(fileIn)
,而不是简单地使用 FileinputStream fInStream = new FileInputStream(fileIn)
?
getResourceAsStream() 可以从类路径而不是绝对位置加载文件。参考this excellent article
即使您的程序在 JAR 存储库中,您也可以加载 .properties 文件
我正在编写一个 Java 程序,它接受一个 foo.properties
文件并将其解析为一个 Properties
对象。快速搜索后,我找到了这段代码:
public Properties getProperties() throws IOException{
String fileIn = "foo.properties";
Properties p = new Properties();
InputStream inStream = getClass().getClassLoader().getResourceAsStream(fileIn);
if(inStream != null) {
p.load(inStream);
} else throw new FileNotFoundException();
return p;
}
我的问题涉及第 4 行:为什么上面的代码使用 InputStream inStream = getClass().getClassLoader().getResourceAsStream(fileIn)
,而不是简单地使用 FileinputStream fInStream = new FileInputStream(fileIn)
?
getResourceAsStream() 可以从类路径而不是绝对位置加载文件。参考this excellent article
即使您的程序在 JAR 存储库中,您也可以加载 .properties 文件