我有这段代码:
try (OutputStream outputStream = new FileOutputStream(PROPERTIES_FILE_PATH)) {
properties.setProperty("test", "test");
properties.store(outputStream, null);
}
PROPERTIES_FILE_PATH = "fileName.properties"
这将在项目的根目录中创建一个文件。我发现避免这种情况的唯一方法是放置文件的绝对路径,意思是:
src/main/java/com/comany/fileName.properties
但人们告诉我,这不会在IDE之外工作,在现实生活中......因为在jar文件中没有src/main...
这样的东西。
什么是解决方案呢?
答案 0 :(得分:0)
您通常不会修改内部存储的文件。相反,您应该在JAR中存储默认文件,并将任何修改存储为外部文件。
您可以使用Class.getResourceAsStream()
访问JAR文件中的非代码资源。
答案 1 :(得分:0)
你可以这样做,并使用set方法setParameters()
来编写它
public class Configuration {
private Properties parameters;
private static Configuration instance = null;
private Configuration() {
parameters = new Properties();
try {
parameters.load(getClass().getClassLoader().getResourceAsStream("fileName.proooooperties"));
} catch (IOException e) {
e.printStackTrace();
}
}
public static Configuration getInstance() {
return instance == null ? new Configuration() : instance;
}
public static void writeProperties(String fileName) {
try{
FileOutputStream oFile = new FileOutputStream("fileName.properties", true);
parameters.setProperty("test", "testing");
parameters.store(oFile, "comments");
oFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public String getParameter(String name) {
return parameters.getProperty(name);
}
public void setParameters(String name, String value) {
parameters.setProperty(name, value);
}
}
答案 2 :(得分:0)
我最终创建了一个配置文件,我把我的属性文件的路径放在了项目之外。