我有一个使用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);
我希望能够通过自定义功能获取名称,该功能可以在指定目录中搜索资源文件。
反正有可能吗?
答案 0 :(得分:0)
是的,这是可能的。 希望我能正确理解您的问题。
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();
希望这会有所帮助。