繁体   English   中英

Android和Java:跨平台属性加载

[英]Android and Java: cross-platform properties loading

我正在为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标准结构)? 我还没有在Google上找到任何东西。

这个问题主要与android有关,因为我认为假设属性位于类路径中,我应该可以使用Java方法。

谢谢。

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

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

我认为最好将这些文件也放在Android的类路径中? 如果无法做到这一点,也许可以使用基于文件的方法并在某个位置配置基本文件夹?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM