在Android应用程序中使用ResourceBundle.getBundle()的正确方法是什么?

时间:2010-02-09 20:17:40

标签: java android netbeans

我想知道如何在Android应用程序中使用ResourceBundle.getBundle(),因为我在Java应用程序中使用它。例如:

我有一个属性文件“MyOrg.properties”,我将其包含在名为“MyOrg.jar”的JAR文件中。与“MyOrg.jar”关联的JAR文件中的路径信息是“myorg”(这是在Windows系统上)。我使用“myorg.jar”构建我的Java应用程序并注意下面的代码行按预期工作,即它将“MyOrg.jperties”中的文件“MyOrg.properties”作为java.util.ResourceBundle加载:< / p>

        ResourceBundle resources = ResourceBundle.getBundle( "myorg.MyOrg" );

接下来,我将文件“MyOrg.properties”的修改后的副本放在目录“c:\ myorg”中的文件系统上,该目录位于我的Java应用程序的类路径中。我现在重新运行我的Java应用程序,并注意Resource.getBundle()按预期返回“MyOrg.properties”(文件系统上的那个)的修改副本的包。

我刚刚描述的行为是我希望能够通过Android应用程序完成的。但是,ResourceBundle.getBundle()会抛出MissingResourceException;它无法在JAR文件中找到“MyOrg.properties”或作为独立文件。

所以我有两个问题:

1) - Android应用程序是否可以使用ResourceBundle.getBundle()(或其他任何方式)从JAR文件中检索资源?

2) - Android应用程序是否可以使用ResourceBundle.getBundle()从文件中检索资源?

关于2):我正在使用带有NetBeans 6.7.1的nbandroid插件,并且在构建我的Android应用程序之前,我在文件系统上放置了“MyOrg.properties”的副本,如下所示:

MyProject的

- 构建

- 班级

  myorg (directory contains "MyOrg.properties")

...   SRC

  myorg (directory contains "MyOrg.properties")

1 个答案:

答案 0 :(得分:1)

您需要确保属性文件使其成为.apk文件。你最好的选择可能是res / raw /或assets /。另请参见PropertyResourceBundle的构造函数(因为它很容易获取InputStream)。