Android学习(23) -- 数据存储之xml序列化器保存数据
2016-04-14 23:05
211 查看
由于直接使用流操作xml时,当遇到数据中含有标签格式的数据时候,比如:有本书<你给>。那么在生成xml文件的时候,会报错。为了更加高效正确的生成xml文件,我们可以使用XmlSerializer来进行操作。操作步骤:
1、通过Xml.newSerializer() 获取XmlSerializer对象
2、通过setOutput制定生成文件的输出流和编码
3、通过startDocument,开始生成xml,并指定头结点中的enconding属性的值
4、通过startTag和endTag以及text,来操作标签内容
5、通过endDocument告诉序列化器,文件生成完毕。
1、通过Xml.newSerializer() 获取XmlSerializer对象
2、通过setOutput制定生成文件的输出流和编码
3、通过startDocument,开始生成xml,并指定头结点中的enconding属性的值
4、通过startTag和endTag以及text,来操作标签内容
5、通过endDocument告诉序列化器,文件生成完毕。
public void click(View v){ //使用xml序列化器生成xml文件 //1.拿到序列化器对象 XmlSerializer xs = Xml.newSerializer(); //2.初始化 File file = new File(Environment.getExternalStorageDirectory(),"sms2.xml"); try { FileOutputStream fos = new FileOutputStream(file); //enconding:指定用什么编码生成xml文件 xs.setOutput(fos, "utf-8"); //3.开始生成xml文件 //enconding:指定头结点中的enconding属性的值 xs.startDocument("utf-8", true); xs.startTag(null, "message"); for (Message sms : smsList) { xs.startTag(null, "sms"); xs.startTag(null, "body"); xs.text(sms.getBody() + "<body>"); xs.endTag(null, "body"); xs.startTag(null, "date"); xs.text(sms.getDate()); xs.endTag(null, "date"); xs.startTag(null, "type"); xs.text(sms.getType()); xs.endTag(null, "type"); xs.startTag(null, "address"); xs.text(sms.getAddress()); xs.endTag(null, "address"); xs.endTag(null, "sms"); } xs.endTag(null, "message"); //告诉序列化器,文件生成完毕 xs.endDocument(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
相关文章推荐
- Android(一)----快速入门
- [android] 数据的异步加载和图片保存
- android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )屏幕适配
- Android系统内置第三方输入法
- android下netperf测试网卡网速能力
- 4.1Android进程启动原理分析----Zygote
- Android学习(22) -- 数据存储之使用xml保存数据
- Android系统权限和root权限
- android单元测试
- android按钮点击的四种响应方式
- android:windowSoftInputMode属性
- Android学习笔记3 Activity的生命周期
- Android Fragment使用详解
- [未解决]Android/Java播放正弦波模拟信号时出现噪音
- Android二维码
- Android学习第七天 Activity细讲
- Android学习之图片加载库Fresco
- android AsyncTask介绍
- Android开发之Toast的用法
- android插件开发-就是你了!启动吧!插件的activity(二)