packagecom.example.savexml;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;importorg.xmlpull.v1.XmlSerializer;importandroid.app.Activity;importandroid.os.Bundle;importandroid.os.Environment;importandroid.util.Log;importandroid.util.Xml;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.Toast;public class MainActivity extendsActivity {

ListsmsList;privateButton btButton;

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);//存放短信的集合

smsList = new ArrayList();//虚拟出20条短信

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

Message msm= new Message("短信内容" +i, System.currentTimeMillis()+ "", "10086", "1");

smsList.add(msm);

}

btButton=(Button) findViewById(R.id.bt);

btButton.setOnClickListener(newOnClickListener() {

@Overridepublic voidonClick(View v) {//TODO Auto-generated method stub

try{

backup();

}catch(IOException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}

});

}private void backup() throwsIOException {//拿到xml序列化器

XmlSerializer xs =Xml.newSerializer();//包装外部存储路径

File file = newFile(Environment.getExternalStorageDirectory(),"info.xml");

FileOutputStream fos= null;try{//用输出流输出info.xml

fos = newFileOutputStream(file);//指定用utf-8编码生成文件

xs.setOutput(fos, "UTF_8");//生成xml表头,两个参数表示表头属性

xs.startDocument("UTF-8", true);//生成根节点

/** 其实拼接的过程有点像写html文件, 无非就是一对标签,一对标签的写而已。

* 从代码可以看出,xs.startTag(),表示标签开始,endTag()表示标签结束。

* 第二个参数表示节点名称。*/xs.startTag(null, "message");for(Message sms : smsList) {

xs.startTag(null, "sms");

xs.startTag(null, "body");

xs.text(sms.getBody());

xs.endTag(null, "body");

xs.startTag(null, "date");

xs.text(sms.getDate());

xs.endTag(null, "date");

xs.startTag(null, "address");

xs.text(sms.getAddress());

xs.endTag(null, "address");

xs.startTag(null, "type");

xs.text(sms.getType());

xs.endTag(null, "type");

xs.endTag(null, "sms");

}

xs.endTag(null, "message");//表示文档生成结束

xs.endDocument();

}catch(Exception e) {

e.printStackTrace();

}finally{if (fos != null) {

fos.close();

Log.i("Back", "33333");

}

}

Toast.makeText(this, "备份完成", 0).show();

}

}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐