如何使用linux中的属性文件并在Java代码中使用
我有一个java代码,它有属性文件,并且在java代码中有使用属性文件的逻辑,但是我们希望将属性文件放在Linux路径中。 现在,因为我们是一个maven项目,所以我试图在java代码中给出文件的完整linux路径,比如“/home/raj/config.properties”,并给出null指针异常。我猜默认情况下,它正在src/main/resources路径中查找config.properties。我在网上搜索累了,找不到任何线索。net中显示的所有具有外部资源的示例都放在同一个java项目中,但在本例中,它位于java项目之外的linux路径中,请给出建议如何使用linux中的属性文件并在Java代码中使用,java,linux,maven,properties,pom.xml,Java,Linux,Maven,Properties,Pom.xml,我有一个java代码,它有属性文件,并且在java代码中有使用属性文件的逻辑,但是我们希望将属性文件放在Linux路径中。 现在,因为我们是一个maven项目,所以我试图在java代码中给出文件的完整linux路径,比如“/home/raj/config.properties”,并给出null指针异常。我猜默认情况下,它正在src/main/resources路径中查找config.properties。我在网上搜索累了,找不到任何线索。net中显示的所有具有外部资源的示例都放在同一个java项
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);
公共静态映射readPropertyFile(最终字符串
propFileName)
抛出FileNotFoundException{
最终属性prop=新属性();
prop.load(Thread.currentThread().getContextClassLoader())
.getResourceAsStream(propFileName));
}
最终HashMap dbConfigValues=(HashMap)
数据库连接器
.readPropertyFile(配置属性);
您可以使用load
方法从InputStream或Reader加载
看
进一步说明
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();
}
顺便说一句最好使用try with resources以确保FileWriter已关闭如何加载文件-您使用的是什么代码?寻求调试帮助的问题(“此代码为什么不工作?”)必须包括所需的行为,一个特定的问题或错误,以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参见:如何创建。src/main/resources${project.build.directory}log4j.properties${project.basedir}/src/main/resources**/*.properties我已经粘贴了pom.xml的resources部分现在我不知道是否有任何选项可以在linux中使用pom.xml的resources部分来使用属性文件。问题是,属性文件存在于linux路径中我需要在我的java代码中使用该属性文件,我正在使用maven Projects这正是我的代码所做的maven与它无关..让我以同样的方式尝试,几分钟后将更新
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();
}