Androidx学习笔记17-- 数据存储之XML

使用XML文件备份短信

  • 短信一般需要获取四组数据:号码,内容,时间,类型(发送还是接收)
  • 创建几个虚拟的短信对象,存在list中
  • 备份数据通常都是备份至sd卡(需要权限)

使用StringBuffer拼接字符串

  • 把整个xml文件所有节点append到sb对象里

    sb.append("<?xml version='1.0' encoding='utf-8' standalone='yes' ?>");
    //添加smss的开始节点
    sb.append("<smss>");
    .......
  • 把sb写到输出流中

    fos.write(sb.toString().getBytes());


代码

JavaBean
   
   
public class Message {private String body; // 内容 date// 时间 address// 对方号码 type// 类型 1是收到 2是发送 getBody()return}void setBody(String)this.body = getDate setDatedate getAddress setAddressaddress getType setTypetype Message,super(); }

操作
// 存放虚拟短信信息
// 备份短信
import javaio.File;.FileNotFoundException.FileOutputStreamutil.ArrayList.List comitheimacreatexmldomain.Message androidos.Bundleapp.Activityview.Menu.View MainActivityextends Activity List<Message> smsList @Overrideprotected onCreate(Bundle savedInstanceStateonCreate(savedInstanceState); setContentViewRlayoutactivity_main//虚拟10条短信 smsList new ArrayList>();for(int i 0<10 i++){ sms ("Hello"+ SystemcurrentTimeMillis """138"i"1"addsms} click(View v){//在内存中把xml备份短信的格式拼接出来 StringBuffer sb StringBuffer sbappend"<?xml version='1.0' encoding='utf-8' standalone='yes' ?>""<messages>"for(Message:"<sms>""<body>"getBody());"</body>""<date>"getDate"</date>""<type>"getType"</type>""<address>"getAddress"</address>""</sms>""</messages>" // 将内容保存起来 File file File"sdcard/sms.xml"try FileOutputStream fos FileOutputStreamfile foswritesbtoString().getBytesclosecatch(Exception e// Todo Auto-generated catch blockprintstacktrace 权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念