java中經常用到properties檔案,然後通過使用Properties類來解析,這裡不再陳述使用properties檔案的好處,主要探討如何在android中使用properties檔案!
方法一:因為最終是通過流檔案來進行properties檔案讀取的,所以很自然,我們想到要將檔案放入到assets檔案夾或者raw檔案夾中了。
例如,我們這裡有一個檔案——>test.properties,如果放入了assets檔案夾中,可以如下開啟
Properties pro = new Properties();
InputStream is = context.getAssets().open("test.properties");
pro.load(is);
如果放入到raw檔案夾中,可以通過如下方式開啟
InputStream is = context.getResources().openRawResource(R.raw.test);
但是,有的時候我們不想擷取android的上下文環境(context),而是像java中標準的方法載入properties檔案,那麼我們如何使用呢?請看方法二:
方法二:沒有內容相關的載入![推薦方式]
Properties pro = new Properties();
pro.load(FileLoad.class.getResourceAsStream("test.properties"));
其中,FileLoad是該載入方法所在類的類名。test.properties所存放的路徑與FileLoad.java為同一包中。
但是,在android中,當我們打包產生apk後,將apk放入到真正的手機上時,你會找不到test.properties檔案,不要驚訝,android中的資源檔是只能存放在assets或者res的子目錄裡面的,程式包中的資源檔編譯後,是會丟失的!那麼是不是我們的第二種方法就沒法使用了? 當然不是,經過實驗發現,將檔案放入到assets檔案夾裡,而在傳入路徑裡面填入檔案絕對路徑,還是可以引用該檔案的。
代碼:pro.load(FileLoad.class.getResourceAsStream("/assets/test.properties"));
注意:其中工程路徑的根路徑為"/"