[英]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.