我有一个java代码,它有属性文件,并且在我的java代码中有使用属性文件的逻辑,但是我们希望将该属性文件放在Linux路径中。 现在,由于我们是一个maven项目,我试图在我的java代码中提供该文件的完整linux路径,比如" /home/raj/config.properties"并给出空指针异常。我的猜测是默认它在src / main / resources路径中寻找config.properties。我很累在网上搜索,找不到任何线索。 net中显示的所有示例都将外部资源放在同一个java项目中,但是在这种情况下它是在java项目之外的linux路径中,请建议。
public static Map<String, String> readPropertyFile(final String
propFileName)
throws FileNotFoundException {
final Properties prop = new Properties();
prop.load(Thread.currentThread().getContextClassLoader()
.getResourceAsStream(propFileName));
}
final HashMap<String, String> dbConfigValues = (HashMap<String, String>)
DatabaseConnector
.readPropertyFile(CONFIG_PROPERTIES);
答案 0 :(得分:0)
您可以使用load
方法从InputStream或Reader
请参阅https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html#load(java.io.Reader)
FileReader rdr = new FileReader(pathedfilename);
Properties props = new Properties();
props.load(rdr);
进一步说明
String pathedfilename = "d:/temp/my.properties";
try {
FileReader rdr = new FileReader(pathedfilename);
FileWriter writer = new FileWriter(pathedfilename);
Properties props = new Properties();
props.load(rdr);
props.setProperty("key1", "myval");
props.store(writer, "saved");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BTW 更好地使用try-with-resources确保FileWriter已关闭