安卓应用开发实战:[19]写xml文件

2025-11-19 22:55:32

1、下面这个类可以用来存放短信信息,短信发送接收时间data, 短信类型type,短信内容body, 电话号码address。smsinfo自定义类代码

package com.example.smsinfo;

public class SmsInfo {

 private long data;

 private int type;

 private String body;

 private String Address;

 public SmsInfo() {

 }

 public SmsInfo(long data, int type, String body, String address) {

  super();

  this.data = data;

  this.type = type;

  this.body = body;

  Address = address;

 }

 public long getData() {

  return data;

 }

 public void setData(long data) {

  this.data = data;

 }

 public int getType() {

  return type;

 }

 public void setType(int type) {

  this.type = type;

 }

 public String getBody() {

  return body;

 }

 public void setBody(String body) {

  this.body = body;

 }

 public String getAddress() {

  return Address;

 }

 public void setAddress(String address) {

  Address = address;

 }

}

安卓应用开发实战:[19]写xml文件

2、在onCreate()方法内模拟产生了10条短信,其中 Random类可以获得随机数

  private List<SmsInfo> smsInfos;

 @Override

 protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_main);

  smsInfos = new ArrayList<SmsInfo>();

  Random random = new Random();

  for(int i = 0;i<10;i++) {

   smsInfos.add(new SmsInfo(System.currentTimeMillis(), random.nextInt(2)+1, "短信内容", i+100+""));

  }

 }

安卓应用开发实战:[19]写xml文件

3、下面这段程序可以为创建xml文件开辟缓冲器,也就是把短信内容写得运存中。

StringBuilder sb = new StringBuilder();

  sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");

  sb.append("<smss>");

  for(SmsInfo oneIfo: smsInfos) {

   sb.append("<data>");

   sb.append(oneIfo.getData());

   sb.append("</data>");

   sb.append("<type>");

   sb.append(oneIfo.getType());

   sb.append("</type>");

   sb.append("<body>");

   sb.append(oneIfo.getBody());

   sb.append("</body>");

   sb.append("<address>");

   sb.append(oneIfo.getAddress());

   sb.append("</address>");

  }

  sb.append("</smss>");

安卓应用开发实战:[19]写xml文件

4、下面这段程序是往磁盘文件里写操作了,涉及到到IO操作处理异常。File file = new File(Environment.getExternalStorageDirectory()+"/backSmsInfo.xml");      FileOutputStream fos;   try {    fos = new FileOutputStream(file);    try {     fos.write(sb.toString().getBytes());    } catch (IOException e) {     // TODO Auto-generated catch block     e.printStackTrace();    }    try {     fos.close();    } catch (IOException e) {     // TODO Auto-generated catch block     e.printStackTrace();    }   } catch (FileNotFoundException e) {    // TODO Auto-generated catch block    e.printStackTrace();   }

安卓应用开发实战:[19]写xml文件

5、如果使用使用安卓提供的序列化类XmlSerializer ,上面的操作就变得简单:下面这段代码就是写一个简单的xml文件

XmlSerializer serializer = Xml.newSerializer();

  File file = new File(Environment.getExternalStorageDirectory()

    + "/backSmsInfo2.xml");

  FileOutputStream fos;

  try {

   fos = new FileOutputStream(file);

   serializer.setOutput(fos, "utf-8");

   serializer.startDocument("utf-8", true);

   serializer.startTag(null, "smss");

   for(SmsInfo ifo : smsInfos) {

    serializer.startTag(null, "sms");

    serializer.attribute(null, "id" ,ifo.getId()+"");

    serializer.startTag(null, "data");

    serializer.text(ifo.getBody()+"");

    serializer.endTag(null, "data");

    serializer.endTag(null, "sms");

   }

   serializer.endTag(null, "smss");

   serializer.endDocument();

   

   } catch (IllegalArgumentException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

   } catch (IllegalStateException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

   } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

   };

安卓应用开发实战:[19]写xml文件

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢