xmlserializer java_通过XmlSerializer接口来生成xml文件
packagecom.example.savexml;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;importorg.xmlpull.v1.XmlSerializer;importandroid.a
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();
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)