gpt4 book ai didi

java - 安卓和Java : cross-platform properties loading

转载 作者:行者123 更新时间:2023-12-01 09:35:38 24 4
gpt4 key购买 nike

我正在为 Java 和 Android 构建一个框架。我想添加的功能之一需要从项目本身加载属性文件。

在 Android 中我可以这样做:

AssetManager assetManager = MyApp.getContext().getAssets();
InputStream inputStream = assetManager.open("path to properties");
properties.load(inputStream);

在 Java 中我可以这样做:

InputStream fis = getClass().getResource("path to properties").openStream();
properties.load(fis);

有什么方法可以使属性加载跨平台(可能保持Android标准结构)?我在谷歌上没有找到任何东西。

问题主要与 android 相关,因为我认为假设属性位于类路径上,我应该能够使用 Java 方法。

谢谢。

最佳答案

从类路径获取资源(例如,执行 getClass().getResource())和从文件系统获取资源(使用 Android Assets )是根本不同的。类路径不假定文件系统,尽管使用标准 Java,我想您不会很快遇到麻烦(如果您的框架将在具有不同类路径规则的 OSGi 容器中使用,您就会遇到麻烦)。

因此,我想知道为什么对于 Android,您引用的文件位于文件系统(在 Assets 中),而对于 Java,它们位于类路径上?

我认为最好也将这些文件放在 Android 的类路径中?如果这是不可能的,也许可以使用基于文件的方法并在某处配置基本文件夹?

关于java - 安卓和Java : cross-platform properties loading,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38971587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com