《Android面试宝典》学习笔记(第五章:文件存储)
Android SDK 支持哪些文件存储技术?
SharedPreferences、流文件存储、XML半结构化存储、JSON存储、数据库、第三方面向对象数据库。
如何使用ShardPreferences存取key-value类型的数据?
//实例化SharedPreferences对象(第一步) SharedPreferences mySharedPreferences= getSharedPreferences("test", Activity.MODE_PRIVATE); //实例化SharedPreferences.Editor对象(第二步) SharedPreferences.Editor editor = mySharedPreferences.edit(); //用putString的方法保存数据 editor.putString("name", "Karl"); editor.putString("habit", "sleep"); //提交当前数据 editor.commit();
//同样,在读取SharedPreferences数据前要实例化出一个SharedPreferences对象 SharedPreferencessharedPreferences= getSharedPreferences("test", Activity.MODE_PRIVATE); // 使用getString方法获得value,注意第2个参数是value的默认值 String name =sharedPreferences.getString("name", ""); String habit =sharedPreferences.getString("habit", ""); //使用toast信息提示框显示信息
SharedPreferences保存的数据文件存放在哪个目录中?是否可以不使用SharedPreferences读取这些数据文件?
文件存储路径为data/data/packagename/shared_prefs
可以直接用文件流读取文件。
Sharedpreferences是否可以把数据保存在SD卡上?
可以用Java反射技术修改文件保存路径。
SharedPreferences可以保存图像数据吗?
将图像转化为二进制数据即可:
public byte[] getBitmapByte(Bitmap bitmap){ ByteArrayOutputStream out = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out); try { out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } return out.toByteArray(); }
读取:
public Bitmap getBitmapFromByte(byte[] temp){ if(temp != null){ Bitmap bitmap = BitmapFactory.decodeByteArray(temp, 0, temp.length); return bitmap; }else{ return null; } }
如何通过PreferencesActivity实现设置页面?
http://www.jb51.net/article/31915.htm
PreferenceActivity保存数据的默认文件名是什么?如何更改?
packagename_preferences.xml。
用PreferenceManager.getSharedPreferencesName方法修改。
Android SDK支持哪些获取文件输入输出流的方式?
1:InputStream和OutputStream方式。
http://blog.csdn.net/ztp800201/article/details/7322110
2:Context.openFileOutput和Context.openFileInput对象。
http://blog.sina.com.cn/s/blog_6e5195850100zssn.html
SAX引擎分析XML文档的过程?
初始化-->开始处理每一个XML元素-->处理完元素-->处理完文件,完成收尾工作-->保存XML元素的文本
如何将XML文件转换为Java对象?
http://showlike.iteye.com/blog/1050843