写入属性文件不起作用

时间:2012-11-10 13:30:27

标签: java eclipse file properties

我想写入* .properties文件。多数民众赞成我的代码如何做到这一点:

    properties = loadProperties("user.properties");//loads the properties file
    properties.setProperty(username, password);
        try {
                properties.store(new FileOutputStream("user.properties"), null);
                System.out.println("Wrote to propteries file!" + username + " " + password);

我没有异常,但我也没有把输出写入文件。

这也是我的文件结构:

enter image description here

感谢您的回答!

更新

我使用以下命令加载我的属性文件

    InputStream in = ClassLoader.getSystemResourceAsStream(filename);

我的问题是,如何从特定路径加载它?

这是我的“新”文件结构:

enter image description here

1 个答案:

答案 0 :(得分:4)

这是我的测试代码:

@Test
public void fileTest() throws FileNotFoundException, IOException {

    File file = null;

    Properties props = new Properties();

    props.setProperty("Hello", "World");

    URL url = Thread.currentThread().getContextClassLoader()
            .getResource("exceptions/user.properties");

    try {
        file = new File(url.toURI().getPath());

        assertTrue(file.exists());
    } catch (URISyntaxException e) {

        e.printStackTrace();
    }

    props.store(new FileOutputStream(file), "OMG, It werks!");

}

它确实在我的target / classes / exceptions目录中创建并重写了一个文件(在maven / eclipse proyect中),所以我猜它确实有效,但当然没有在JAR文件中测试过。

这是文件:

#OMG, It werks!
#Sat Nov 10 08:32:44 CST 2012
Hello=World

另外,请检查此问题:How can i save a file to the class path

所以也许你想做的事永远不会奏效。