方法一:因為最終是透過流檔案來進行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檔案,請看方法二:
方法二:沒有上下文的載入![推薦方式]
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\"));
注意:其中工程路徑的根路徑為\"/\"
方法一:因為最終是透過流檔案來進行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\"));
注意:其中工程路徑的根路徑為\"/\"