注0:本文整理于 6 月 13 日
注1:今天 6 月 15 日,回過頭來看看,整理了又能怎么樣,還是記不住
- Android 文件存儲知識點總結
SharedPreferences
Android SDK 支持的文件存儲技術
- 使用 SharedPreferences 保存 key-value 類型的數據
- 流文件存儲(使用 openFileOutput 和 openFileInput 方法,或 FileInputStream 和 FileOutputStream 對象)
- XML 半結構化存儲
- 用 JSON 保存數組和對象
- 用數據庫保存結構化數據
- 用第三方的面向對象數據庫直接保存 Java 對象
使用 SharedPreferences 存取 key-value 類型的數據
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, 第二個參數是 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 反射技術改變系統(tǒng)內定的文件保存路徑
具體代碼查看Kindle 《Android 程序員面試寶典》5.1 面試例題4
SharedPreferences 保存圖像數據
將圖像轉化成字符串即可。
具體代碼查看Kindle 《Android 程序員面試寶典》5.1 面試例題4
PreferenceActivity 類實現(xiàn)一個設置界面
因為實際運用較少,所以這里只做了解。
PreferenceActivity 是 Activity 的子類,其預定義了一些專用組件,可以實現(xiàn)常用設置項。
具體可查源碼
流文件
Android SDK 支持哪些獲取文件輸入輸出流的方式
- 1 直接創(chuàng)建 FileInputStream 和 FileOutputStream 對象
- 2 使用 Context.openFileInput 和 Context.openFileOutput 方法可分別獲取用于寫文件和讀文件的 OutputStream 和 InputStream 對象
Context.openFileOutput 存放數據文件的路徑
/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 技術讀取 XML。
SAX 引擎分析 XML 文檔的過程
具體代碼查看本書 5.3 節(jié)。
主要是通過 Java 代碼進行解析,無關 SDK。
將 XML 文件轉換成對象
主要是要通過一個具體映射類和 XML 文件進行對應
JSON 存儲
描述 JSON 文檔的格式
JSON 是一種輕量級數據存儲和傳輸方式。
可以使用字符串形式保存數組和對象屬性值。
數組使用中括號 “[]”, 對象使用大括號“{}”。
解析 JSON 格式文檔
解析的步驟是先將文檔序列化裝載,然后一步一步進行解析。
Java 中有現(xiàn)成的類和方法可以進行使用的,所以不慌。
主要運用的是 JSONObject 和 JSONArray。其他的有時間的話可以去看看的。