首頁>Club>
6
回覆列表
  • 1 # 一個人的MTV

    方法一:因為最終是透過流檔案來進行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\"));

    注意:其中工程路徑的根路徑為\"/\"

  • 中秋節和大豐收的關聯?
  • 勒布朗詹姆斯生涯沒啥好隊友,為何還是總被說抱團?