我想知道如何在Android应用程序中使用ResourceBundle.getBundle(),因为我在Java应用程序中使用了ResourceBundle.getBundle()。例如:
我有一个属性文件“ MyOrg.properties”,该文件包含在名为“ MyOrg.jar”的JAR文件中。与“ MyOrg.jar”关联的JAR文件中的路径信息是“ myorg \”(在Windows系统上)。我使用“ myorg.jar”构建我的Java应用程序,并注意以下代码行按预期方式工作,即它将“ MyOrg.jar”中的文件“ MyOrg.properties”作为java.util.ResourceBundle加载:
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):我将nbandroid插件与NetBeans 6.7.1结合使用,并且在构建Android应用程序之前,已按照以下步骤将“ MyOrg.properties”的副本放置在文件系统上:
我的项目
-建立
-班级
myorg (directory contains "MyOrg.properties")
...
src
myorg (directory contains "MyOrg.properties")
最佳答案
您需要确保属性文件使其成为.apk文件。最好的选择可能是资源/原始资源/或资产/。另请参见PropertyResourceBundle的构造函数(因为很容易掌握InputStream)。