注0:本文整理于 6 月 13 日
注1:今天 6 月 15 日兵志,回過頭來看看睡汹,整理了又能怎么樣,還是記不住
- Android 文件存儲知識點總結(jié)
SharedPreferences
Android SDK 支持的文件存儲技術(shù)
- 使用 SharedPreferences 保存 key-value 類型的數(shù)據(jù)
- 流文件存儲(使用 openFileOutput 和 openFileInput 方法,或 FileInputStream 和 FileOutputStream 對象)
- XML 半結(jié)構(gòu)化存儲
- 用 JSON 保存數(shù)組和對象
- 用數(shù)據(jù)庫保存結(jié)構(gòu)化數(shù)據(jù)
- 用第三方的面向?qū)ο髷?shù)據(jù)庫直接保存 Java 對象
使用 SharedPreferences 存取 key-value 類型的數(shù)據(jù)
String FILE_NAME = "fileName";
SharedPreferences mySharedPreferences = getSharedPreferences(FILE_NAME, Activity.MODE_PRIVATE);
// 寫入
SharedPreferences.Editor editor = mySharedPreferences.edit();
editor.putString("name", "bill");
editor.putBoolean("employee", true);
editor.putInt("id", 1);
editor.commit();
// 讀取使用 getXxx 方法獲得 value, 第二個參數(shù)是 value 的默認值
String name = mySharedPreferences.getString("name", "");
boolean employee = mySharedPreferences.getBoolean("employee", false);
int id = mySharedPreferences.getInt("id", -1);
SharedPreferences 保存路徑和使用文件流讀取
保存路徑:/data/data/packagename/shared_prefs
使用文件流讀取的代碼:
// 獲取目錄
String path = android.os.Environment.getDataDirectory()
.getAbsolutePath() + "/data/" + getPackageName() + "/shared_prefs/xxx.xml";
FileInputStream fis = new FileInputStream(path);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
String strInfo = br.readLine();
fis.close();
SharedPreferences 將文件保存在 SD 卡上
利用 Java 反射技術(shù)改變系統(tǒng)內(nèi)定的文件保存路徑
具體代碼查看Kindle 《Android 程序員面試寶典》5.1 面試例題4
SharedPreferences 保存圖像數(shù)據(jù)
將圖像轉(zhuǎn)化成字符串即可馁龟。
具體代碼查看Kindle 《Android 程序員面試寶典》5.1 面試例題4
PreferenceActivity 類實現(xiàn)一個設(shè)置界面
因為實際運用較少,所以這里只做了解漆魔。
PreferenceActivity 是 Activity 的子類坷檩,其預(yù)定義了一些專用組件,可以實現(xiàn)常用設(shè)置項改抡。
具體可查源碼
流文件
Android SDK 支持哪些獲取文件輸入輸出流的方式
- 1 直接創(chuàng)建 FileInputStream 和 FileOutputStream 對象
- 2 使用 Context.openFileInput 和 Context.openFileOutput 方法可分別獲取用于寫文件和讀文件的 OutputStream 和 InputStream 對象
Context.openFileOutput 存放數(shù)據(jù)文件的路徑
/data/data/data/packagename/files 目錄中
使用 ImageView 組件裝載 SD 卡上的圖像文件
ImageView imV = (ImageView)findViewById(R.id.Xxxxx);
ImageView.setImageDrawable(Drawable.createFromPath("/sdcard/Xxxxx.png"));
XML 存儲
Android SDK 支持讀取 XML 嗎矢炼?
只支持采用 SAX 技術(shù)讀取 XML。
SAX 引擎分析 XML 文檔的過程
具體代碼查看本書 5.3 節(jié)阿纤。
主要是通過 Java 代碼進行解析句灌,無關(guān) SDK。
將 XML 文件轉(zhuǎn)換成對象
主要是要通過一個具體映射類和 XML 文件進行對應(yīng)
JSON 存儲
描述 JSON 文檔的格式
JSON 是一種輕量級數(shù)據(jù)存儲和傳輸方式。
可以使用字符串形式保存數(shù)組和對象屬性值胰锌。
數(shù)組使用中括號 “[]”骗绕, 對象使用大括號“{}”。
解析 JSON 格式文檔
解析的步驟是先將文檔序列化裝載资昧,然后一步一步進行解析酬土。
Java 中有現(xiàn)成的類和方法可以進行使用的,所以不慌格带。
主要運用的是 JSONObject 和 JSONArray撤缴。其他的有時間的話可以去看看的。