如何使用放置在 linux 中的属性文件并在 Java 代码中使用
How to use properties files placed in linux and use in Java code
我有一个 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);
您可以使用 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 关闭
我有一个 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);
您可以使用 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 关闭