Android中讀取properties文件

通過流文件來進行properties文件讀取的,要將文件放入到assets文件夾或者raw文件夾中.例如,我們這裡有一個文件test.properties,如果放入瞭assets文件夾中,可以如下打開:
Java代碼  www.aiwalls.com
Properties pro = new Properties(); 
InputStream is = context.getAssets().open("test.properties");  
pro.load(is); 

    如果放入到raw文件夾中,可以通過如下方式打開:

Java代碼 
InputStream is = context.getResources().openRawResource(R.raw.test); 

   
Java代碼 
Properties pro = new Properties(); 
pro.load(FileLoad.class.getResourceAsStream("/assets/test.properties")); 
 
讀寫函數分別如下:
[java] 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.util.Properties; 
 
public Properties loadConfig(Context context, String file) { 
Properties properties = new Properties(); 
try { 
FileInputStream s = new FileInputStream(file); 
properties.load(s); 
} catch (Exception e) { 
e.printStackTrace(); 

return properties; 

 
public void saveConfig(Context context, String file, Properties properties) { 
try { 
FileOutputStream s = new FileOutputStream(file, false); 
properties.store(s, ""); 
} catch (Exception e){ 
e.printStackTrace(); 


 

 
orz,是不是發現什麼瞭?對瞭,這兩個函數與Android一點關系都沒有嘛。。
所以它們一樣可以在其他標準的java程序中被使用
在Android中,比起用純字符串讀寫並自行解析,或是用xml來保存配置,
Properties顯得更簡單和直觀,因為自行解析需要大量代碼,而xml的操作又遠不及Properties方便

使用方法如下:
寫入配置:
Properties prop = new Properties();
prop.put("prop1", "abc");
prop.put("prop2", 1);
prop.put("prop3", 3.14);
saveConfig(this, "/sdcard/config.dat", prop);

讀取配置:
Properties prop = loadConfig(this, "/sdcard/config.dat");
String prop1 = prop.get("prop1");

註:也可以用Context的openFileInput和openFileOutput方法來讀寫文件
此時文件將被保存在 /data/data/package_name/files下,並交由系統統一管理
用此方法讀寫文件時,不能為文件指定具體路徑。
    在android中,當我們打包生成apk後,將apk放入到真正的手機上時,你會找不到test.properties文件,不要驚訝,android中的資源文件是隻能存放在assets或者res的子目錄裡面的,程序包中的資源文件編譯後,是會丟失的!那麼是不是我們的第二種方法就沒法使用瞭?當然不是,經過實驗發現,將文件放入到assets文件夾裡,而在傳入路徑裡面填入文件絕對路徑,還是可以引用該文件的.
 

You May Also Like