[英]save user status in maven project
我正在用netbeans IDE和maven編寫一個javaFX項目。
我將用戶編輯保存在屬性文件中,並在應用程序啟動時加載它,我想在應用程序關閉時更新它,以備下次使用。
所以我正在讀取屬性文件,如下所示:
public static Properties propConfig = new Properties();
InputStream input;
input = Config.class.getClassLoader().getResourceAsStream("config/displayConfig.properties");
propConfig.load(input);
效果很好..
但我不知道如何更新屬性文件:(作為
output = new FileOutputStream( new File(Config.class.getClassLoader().getResource("config/displayConfig.properties").toURI()) );
無法工作,因為它從jar讀取資源文件
jar:file:/D:/freelance%20projects/01%20school%20tool%20bar/mavenprojectFX/target/racer40-1.0-SNAPSHOT.jar!/config/displayConfig.properties
通常,不建議在JAR文件中更新文件。 請改用本地文件,例如:
Path userDirPath = Paths.get(System.getProperty("user.home"), ".<myAppSymbolicName>", "<myAppVersion>");
Path configDirPath = userDirPath.resolve("config");
Path displayConfigFilePath = configDirPath.resolve("displayConfig.properties");
// read file
好吧,我做了一個變通辦法,因為我只能從jar中讀取文件,所以我定義了一個新的屬性文件,並且在其中定義了配置路徑。
我已經在POM.xml中修改了資源以將過濾設置為true
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
我已經將路徑屬性文件放在“ src / main / resources / config”文件夾中
路徑文件包含
Path=${project.build.directory}
我正在閱讀以下內容
InputStream pathStream
= Config.class.getClassLoader().getResourceAsStream("config/path.properties");
Properties pathProperties = new Properties();
pathProperties.load(pathStream);
path = pathProperties.get("Path").toString().replace("target", "");
System.out.println(pathProperties.get("Path"));
pathStream.close();
然后我正在使用'path'變量,如下所示
OutputStream output = new FileOutputStream(new File(path + displayConfig.properties"));
所以我現在將配置文件“ displayConfig.properties”放在jar的相同路徑中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.