[英]How to load resources.properties from local directory, not the JAR in Java?
我有一個使用Guice和JavaFX的Java應用程序,它需要可配置的資源。
我可以從JAR加載兩個資源文件,但是我希望能夠從用戶有權修改它們的本地目錄中加載它們。
我曾嘗試將它們發送到AppData,但我希望該文件在安裝文件夾等位置更具可配置性。 我也不知道是否有可能從包外部加載屬性文件。
當前,這是使用ClassLoader加載資源的方法:
ClassLoader cl = Thread.currentThread().getContextClassLoader();
List<String> bundleNames = new ArrayList<String>();
try {
String baseFileName = baseName + ".properties";
String resourcePath = getResourcePath();
String resourceName = resourcePath + baseFileName;
if (isLoggable) {
LOG.logp(Level.FINE, CLASS, METHOD, "Looking for files named '" + resourceName + "'");
}
Enumeration<URL> names = cl.getResources(resourceName);
我希望能夠通過自定義函數獲取名稱,該自定義函數在指定目錄中搜索資源文件。
反正有可能嗎?
是的,這是可能的。 希望我能正確理解您的問題。
1)使用所需的路徑創建文件,例如:
settingsFile = new File(System.getProperty("user.home") + "/{Project}/settings.xml");
settingsFile.getParentFile().mkdirs();
settingsFile.createNewFile();
該路徑指向用戶的默認目錄(對我來說,是C:\\ users \\ meiswjn {Project}),但是您可以使用任何目錄。
2)使用properties.put(..)設置默認值。
3)保存屬性。
FileWriter fileWriter = new FileWriter(settingsFile);
BufferedWriter propWriter = new BufferedWriter(fileWriter);
props.store(propWriter, "Comment");
propWriter.close();
fileWriter.close();
4)您可以通過以下方式讀取屬性:
FileReader fileReader = new FileReader(settingsFile);
BufferedReader reader = new BufferedReader(fileReader);
props.load(reader);
fileReader.close();
reader.close();
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.