Android(安卓)xml文件的序列化
16lz
2021-01-24
Android提供了XmlSerializer来实现XML文件的序列化。相比传统方式,更高效安全。
传统方式:
public void backSms(View view){//假设我已经获取到了所有的短信StringBuilder sb = new StringBuilder();sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");sb.append("<smss>");for(SmsInfo info:smsInfos){sb.append("<sms>");sb.append("<address>");sb.append(info.getAddress());sb.append("</address>");sb.append("<type>");sb.append(info.getType());sb.append("</type>");sb.append("<body>");sb.append(info.getBody());sb.append("</body>");sb.append("<date>");sb.append(info.getBody());sb.append("</date>");sb.append("</sms>");}sb.append("</smss>");try{File file = new File(Environment.getExternalStorageDirectory(),"backup.xml");FileOutputStream fos = new FileOutputStream(file);fos.write(sb.toString().getBytes());Toast.makeText(this, "备份成功", Toast.LENGTH_LONG).show();}catch(Exception e){e.printStackTrace();Toast.makeText(this, "备份失败", Toast.LENGTH_LONG).show();}}
采用XmlSerializer实现的方式:
public void backSms2(View view){try{XmlSerializer serializer = Xml.newSerializer();File file = new File(Environment.getExternalStorageDirectory(),"backup2.xml");FileOutputStream os = new FileOutputStream(file);//初始化序列号器 指定XML数据写入到哪个文件 并且指定文件的编码方式serializer.setOutput(os,"utf-8");serializer.startDocument("utf-8", true);serializer.startTag(null, "smss");for(SmsInfo info:smsInfos){serializer.startTag(null, "sms");serializer.attribute(null, "id", info.getId()+"");serializer.startTag(null, "body");serializer.text(info.getBody());serializer.endTag(null, "body");serializer.startTag(null, "address");serializer.text(info.getAddress());serializer.endTag(null, "address");serializer.endTag(null, "sms");}serializer.endTag(null, "smss");serializer.endDocument();}catch(Exception e){e.printStackTrace();Toast.makeText(this, "备份失败", 0);}}
更多相关文章
- android 调用系统相机拍照并保存照片原图
- 安卓APP:利用AndroidStudio开发usb串口通信软件【第2步】
- android studio基础教程:3.美化按钮
- 管理应用自启动的方案
- Android(安卓)javah -jni 找不到类的解决方法
- 译:Android(安卓)N不再支持通过Intent传递“file://”scheme
- 自定义Dialog的几种实现方式
- Android:在Eclipse下开发android应用产生的问题及解决方法
- uiautomatorviewer.bat的使用