如何在Java中从文件资源加载资源包?

2022-08-31 20:21:10

我有一个叫入的文件mybundle.txtc:/temp -

c:/temp/mybundle.txt

如何将此文件加载到 ?该文件是有效的资源包。java.util.ResourceBundle

这似乎不起作用:

java.net.URL resourceURL = null;

String path = "c:/temp/mybundle.txt";
java.io.File fl = new java.io.File(path);

try {
   resourceURL = fl.toURI().toURL();
} catch (MalformedURLException e) {             
}           

URLClassLoader urlLoader = new URLClassLoader(new java.net.URL[]{resourceURL});
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle( path , 
                java.util.Locale.getDefault(), urlLoader );

答案 1

只要您正确命名资源包文件(扩展名为 .properties),那么此方法有效:

File file = new File("C:\\temp");
URL[] urls = {file.toURI().toURL()};
ClassLoader loader = new URLClassLoader(urls);
ResourceBundle rb = ResourceBundle.getBundle("myResource", Locale.getDefault(), loader);

其中“c:\temp”是保存属性文件的外部文件夹(不在类路径上),“myResource”与myResource.properties,myResource_fr_FR.properties等相关。

http://www.coderanch.com/t/432762/java/java/absolute-path-bundle-file


答案 2

当你说它是“一个有效的资源包”时- 它是一个属性资源包吗?如果是这样,最简单的加载方式可能是:

try (FileInputStream fis = new FileInputStream("c:/temp/mybundle.txt")) {
  return new PropertyResourceBundle(fis);
}

推荐