Androidx学习笔记(17)-- 数据存储之XML
2016-01-22 18:17
603 查看
使用XML文件备份短信
短信一般需要获取四组数据:号码,内容,时间,类型(发送还是接收)创建几个虚拟的短信对象,存在list中备份数据通常都是备份至sd卡(需要权限)使用StringBuffer拼接字符串
把整个xml文件所有节点append到sb对象里sb.append("<?xmlversion='1.0'encoding='utf-8'standalone='yes'?>"); //添加smss的开始节点 sb.append("<smss>"); .......把sb写到输出流中
fos.write(sb.toString().getBytes());
代码
JavaBeanpublicclassMessage{
privateStringbody;//内容
privateStringdate;//时间
privateStringaddress;//对方号码
privateStringtype;//类型1是收到2是发送
publicStringgetBody(){
returnbody;
}
publicvoidsetBody(Stringbody){
this.body=body;
}
publicStringgetDate(){
returndate;
}
publicvoidsetDate(Stringdate){
this.date=date;
}
publicStringgetAddress(){
returnaddress;
}
publicvoidsetAddress(Stringaddress){
this.address=address;
}
publicStringgetType(){
returntype;
}
publicvoidsetType(Stringtype){
this.type=type;
}
publicMessage(Stringbody,Stringdate,Stringaddress,Stringtype){
super();
this.body=body;
this.date=date;
this.address=address;
this.type=type;
}
}操作
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.util.ArrayList;
importjava.util.List;
importcom.exp.createxml.domain.Message;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.view.Menu;
importandroid.view.View;
publicclassMainActivityextendsActivity{//存放虚拟短信信息
List<Message>smsList;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//虚拟10条短信
smsList=newArrayList<Message>();
for(inti=0;i<10;i++){
Messagesms=newMessage("Hello"+i,System.currentTimeMillis()+"","138"+i+i,"1");
smsList.add(sms);
}
}//备份短信
publicvoidclick(Viewv){
//在内存中把xml备份短信的格式拼接出来
StringBuffersb=newStringBuffer();
sb.append("<?xmlversion='1.0'encoding='utf-8'standalone='yes'?>");
sb.append("<messages>");
for(Messagesms:smsList){
sb.append("<sms>");
sb.append("<body>");
sb.append(sms.getBody());
sb.append("</body>");
sb.append("<date>");
sb.append(sms.getDate());
sb.append("</date>");
sb.append("<type>");
sb.append(sms.getType());
sb.append("</type>");
sb.append("<address>");
sb.append(sms.getAddress());
sb.append("</address>");
sb.append("</sms>");
}
sb.append("</messages>");
//将内容保存起来
Filefile=newFile("sdcard/sms.xml");
try{
FileOutputStreamfos=newFileOutputStream(file);
fos.write(sb.toString().getBytes());
fos.close();
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}权限:
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/> |
相关文章推荐
- Android自定义音量条控件
- Android的Activity之间传对象的方法
- 【Android】实现新闻分类(二级下拉菜单)效果
- Androidx学习笔记(16)-- 数据存储之 SharedPreference
- Android 注解工具ButterKnife源码分析
- Android应用程序消息处理机制
- Android MimeType的用途以及所有类型
- 纯ant命令行打包android apk之图文从原理角度完全详解android打包过程(打包系列教程之一)
- 获取Android屏幕尺寸、控件尺寸、状态栏/通知栏高度、导航栏高度
- Androidx学习笔记(14)-- Android文件的访问权限
- 让Activity在Android5.0上全屏
- Android.mk 文件语法详解
- Android 沉浸式状态栏 statusBar
- Androidx学习笔记(13)-- 获取sd卡剩余容量的代码
- Android运行时异常“Binary XML file line # : Error inflating class”
- android canvas Rotate 图片中心旋转
- Android kernel printk概览
- Android - ADB调试桥
- Android中的同步与Mutex
- Smali--Dalvik虚拟机指令语言-->【android_smali语法学习一】