在Android的Assets文件夹中使用ResourceBundle

5

我目前在一个纯Java程序中使用ResourceBundles。现在我想在Android应用程序中使用相同的文件。当文件放置在例如/sdcard/时,它按预期工作。是否有一种方法可以直接从已知的Android文件夹结构中加载它们?例如,从assets中而无需手动复制到sdcard吗?

这适用于sdcard:

    File file = new File("/sdcard/");
    URL[] urls = new URL[0];
    try {
       urls = new URL[]{file.toURI().toURL()};

    } catch (MalformedURLException e) {
        e.printStackTrace();
    }

    ClassLoader loader = new URLClassLoader(urls);
    ResourceBundle rb = ResourceBundle.getBundle("test", Locale.DEFAULT, loader);

这个URL不能用于assets文件夹:

   urls = new URL[]{new URL("file:///android_asset/test/")};

感谢任何帮助。

如果您想从资产中加载文件,可以查看此答案。 - Rami
@Rami ResourceBundle 无法处理 InputStream。 - user2479595
1个回答

1
尝试在此路径 src/main/resources 上创建一个名为 resources 的文件夹,然后使用 ResourceBundle 在 Android 上从那里获取或放置你的文件。这对我有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接