Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用linux中的属性文件并在Java代码中使用_Java_Linux_Maven_Properties_Pom.xml - Fatal编程技术网

如何使用linux中的属性文件并在Java代码中使用

如何使用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项

我有一个java代码,它有属性文件,并且在java代码中有使用属性文件的逻辑,但是我们希望将属性文件放在Linux路径中。 现在,因为我们是一个maven项目,所以我试图在java代码中给出文件的完整linux路径,比如“/home/raj/config.properties”,并给出null指针异常。我猜默认情况下,它正在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);
公共静态映射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();
    }