編輯:關於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內容較多,故放在單獨的博客中講解, 後續整理,加油。
轉帖請注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273),請尊重他人的
大多App都會使用到的基本控件 ——- Listiew,特別像新聞浏覽類的比如說“今日關注”,或者“應用寶&r
很早使用eclipse+ndk研究過jni開發,當時覺得配置、開發起來很麻煩,現在使用Android Studio開發jni,相對覺得比較容易。先說明一下開發環境Mac
Spinner控件是一個下拉列表 1.實現Spinner的系統默認設置 2.實現自定義設置: 3.使用的監聽器接口是:OnItemSelectedListener系統默認