編輯:關於Android編程
Android開發中,經常會接觸到數據存儲, 故本文詳細講述下關於數據存儲的知識,希望能夠加深理解,時常回顧,由於本人才疏學淺,或有不當之處,望批評指教
文本存儲比較簡單,不會對數據做格式化處理,適合存儲一些簡單的文本數據,默認情況下,保存到內部存儲的文件是應用的私有文件,其他應用(和用戶)不能訪問這些文件。 當用戶卸載您的應用時,這些文件也會被移除。
Context類提供了兩種方法打開數據文件的IO流
FileOutputStream openFileOutput (String name, int mode)
該方法將數據輸出到文件裡,方法接受兩個參數,第一個參數是文件名,注意文件名不可以包含路徑,因為所有的文件都是默認存儲到/data/data/
有兩種模式可選
* MODE_PRIVATE: 默認的操作模式,表示私有數據,只能被本應用訪問,並且寫入內容會覆蓋源文件內容
* MODE_APPEND: 表示若文件已存在,則往文件中追加內容,否則創建新文件。
private void write(){
String data = "舉頭望明月,低頭思故鄉";
BufferedWriter bufferedWriter = null;
try {
FileOutputStream fileOutputStream = openFileOutput("data", MODE_PRIVATE);
bufferedWriter = new BufferedWriter(new OutputStreamWriter(fileOutputStream));
bufferedWriter.write(data);
}catch (IOException e){
e.printStackTrace();
}finally {
try {
if(bufferedWriter != null){
bufferedWriter.close();
}
}catch (IOException e){
e.printStackTrace();
}
}
}
FileInputStream openFileInput (String name)
該方法從文件中讀取數據,直接受一個參數,即要讀取的文件名,然後系統會自動到/data/data/
private String read(){
BufferedReader bufferedReader = null;
StringBuilder data = new StringBuilder();
try{
FileInputStream fileInputStream = openFileInput("data");
bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
String line = "";
while ((line = bufferedReader.readLine()) != null){
data.append(line);
}
}catch (IOException e){
e.printStackTrace();
}finally {
try {
if(bufferedReader != null){
bufferedReader.close();
}
}catch (IOException e){
e.printStackTrace();
}
}
return data.toString();
}
SharedPreferences 是基於XML文件存儲的鍵值對保存數據的,並且支持多種不同的數據類型。文件存放在/data/data/
SharedPreferences.Editor editor = getSharedPreferences("data", MODE_APPEND).edit();
editor.putBoolean("flag", true);
editor.putInt("age", 22);
editor.putString("name", "hao");
editor.commit();
SharedPreferences sharedPreferences = getSharedPreferences("data", MODE_APPEND);
SQLite數據庫和ContentProvider內容較多,故放在單獨的博客中講解, 後續整理,加油。
Android 帶你從源碼的角度解析Scroller的滾動實現原理
轉帖請注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273),請尊重他人的
Android ListView封裝(代碼優化):抽取方法共性,封裝 BaseAdapter 和 ViewHolder
大多App都會使用到的基本控件 ——- Listiew,特別像新聞浏覽類的比如說“今日關注”,或者“應用寶&r
Android Studio NDK JNI開發入門記錄
很早使用eclipse+ndk研究過jni開發,當時覺得配置、開發起來很麻煩,現在使用Android Studio開發jni,相對覺得比較容易。先說明一下開發環境Mac
A09_Spinner(下拉列表)自定義設置
Spinner控件是一個下拉列表 1.實現Spinner的系統默認設置 2.實現自定義設置: 3.使用的監聽器接口是:OnItemSelectedListener系統默認