編輯:關於Android編程
通過流文件來進行properties文件讀取的,要將文件放入到assets文件夾或者raw文件夾中.例如,我們這裡有一個文件test.properties,如果放入了assets文件夾中,可以如下打開:
Java代碼 www.2cto.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文件夾裡,而在傳入路徑裡面填入文件絕對路徑,還是可以引用該文件的.
已經有一段事件沒有寫博客了,由於最近一段時間比較忙,在趕項目,而且也有一些迷茫,不知道該寫些什麼好,正好最近遇到了一個自定義控件的事件沖突問題,所以就再網上找了很多關於事
Intent代表了Android應用的啟動“意圖”,Android應用將會根據Intent來啟動指定組件,至於到底啟動哪個組件,取決於Intent的各個屬性。 一、顯式的
本章系Android基礎將會總結了Android 布局常見面試問題。其實對於基礎方面Android 開發來說,經常面試無非就是UI,網絡,數據庫,這三大方面,本章節總結
由於這次的魅藍metal采用的是基於阿裡開發的虛擬機核心的flymeOS,雖然能兼容普遍的安卓應用,但很可惜是不能root的,因此也失去了很多搞基的樂趣。下