簡體   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