配置文件的位置

时间:2012-08-31 14:54:58

标签: java netbeans

我有一个文本文件。它有配置信息。此文件应保留在外部,以便随时可以更改此文件的内容。在运行时,应该从中读取内容。我正在使用netbeans,我尝试使用ClassLoader,在我构建之后,dist文件夹没有config_text.txt文件。有没有办法做到这一点,就像我们在netbeans中添加库文件(jar)一样?

4 个答案:

答案 0 :(得分:1)

你怎么读?如果文件位于项目根目录(例如build.xml中),则可以像File f = new File("my file.txt");那样访问它 - 但是NB不会移动它执行ist文件夹。

顺便说一下。建筑不会添加任何文件,但libs和你的jar到dist文件夹。也许你可以尝试改变蚂蚁脚本。请看一下build.xml

答案 1 :(得分:0)

如果将文件添加到NetBeans项目目录中的“src”文件夹中,则应将其自动放置在dist文件夹和您构建的任何jar中的相同位置。无论如何,它对我有用,我正在运行Windows 7x64和NetBeans 7.1.2,例如将文件放入:

  

*的NetBeansProjects \ PROJECT_NAME \ SRC \ PACKAGE_NAME \ config_text.txt

应自动将文件放在此处:

  

* \的NetBeansProjects \ PROJECT_NAME \建立\类\ PACKAGE_NAME \ config_text.txt

然后,您可以使用getResource()方法访问它。

编辑:

你的运行“清理和构建”而不仅仅是“构建”吗?第一个将删除“dist”文件夹中的所有内容并重新生成内容,第二个将重新创建Jar并将其他文件(例如config_text.txt)保留在原来的位置。

答案 2 :(得分:0)

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class ConfigHandler {

    private static final String PROPERTIES_FILE = "/home/myConfigFile.properties";
    private static final Properties PROPERTIES = new Properties();

    static {
        loadPropertyFile(PROPERTIES_FILE);
    }

    private static void loadPropertyFile(final String path) {
        InputStream is = null;
        try {
            is = new FileInputStream(path);
            PROPERTIES.load(is);
        } catch (IOException e) {
            throw new RuntimeException("Failed to load property file", e);
        } finally {
            if (is != null) {
                try {
                    is.close();
                } catch (IOException ex) {
                }
            }
        }
    }

    public void reLoadPropertyFile() throws IOException {
        loadPropertyFile(PROPERTIES_FILE);
    }

    public static String getProperty(String key) {
        return PROPERTIES.getProperty(key);
    }
}

要在代码中的任何位置读取配置值:

String somePropertyValue = ConfigHandler.getProperty("someProperty");

要重新加载配置文件:  ConfigHandler.reLoadPropertyFile();

答案 3 :(得分:0)

我经常使用user.home属性来创建配置文件。就我而言,我检查文件是否存在于user.home目录中。如果没有,那么我从我的应用程序导出一个副本,或者将默认属性写入该文件。您可能想尝试这种方法。使用user.home目录也可以跨平台保持一致。