Android - XML序列化
1、xml文件的序列化:采用XmlSerializer来实现XML文件的序列化。相比传统方式,更高效安全
MainActivity.java
package com.example.test_buildxmlfile; import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Random; import org.xmlpull.v1.XmlSerializer; import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.util.Xml;
import android.view.View;
import android.widget.Toast; import com.example.test_getxmlfile.R;
import com.test.MsgInfo.MsgInfo; /**
* @author daomul
* 主入口:xml文件的序列化
*/
public class MainActivity extends Activity { private List<MsgInfo> msgList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); msgList = new ArrayList<MsgInfo>();
Random random= new Random(); //随机的 (1:发送 2 :接收)
long number = 1340000001; //手机地址 //连续生成10条默认短信
for (int i = 0; i < 10; i++) {
msgList.add(new MsgInfo(System.currentTimeMillis(), random.nextInt(2),
"text MSg"+i,Long.toString(number+i),i ));
}
} /**
* 短信信息备份
* @param view 点击事件触发
*/
public void MsgSave(View view){ try {
//XML序列化
XmlSerializer serializer= Xml.newSerializer(); File file=new File(Environment.getExternalStorageDirectory(),"test.xml");
FileOutputStream os= new FileOutputStream(file); serializer.setOutput(os, "utf-8");//os 是导出的文件位置 encoding 指代utf-8
serializer.startDocument("utf-8", true); serializer.startTag(null, "msgs");
for (MsgInfo msg:msgList) {
serializer.startTag(null, "msg");
serializer.attribute(null, "msg", msg.getId()+"");//添加ID属性 serializer.startTag(null, "body");
serializer.text(msg.getBody());
serializer.endTag(null, "body"); serializer.startTag(null, "address");
serializer.text(msg.getAddress());
serializer.endTag(null, "address"); serializer.startTag(null, "type");
serializer.text(msg.getType()+"");
serializer.endTag(null, "type"); serializer.startTag(null, "date");
serializer.text(msg.getDate()+"");
serializer.endTag(null, "date"); serializer.endTag(null, "msg");
}
serializer.endTag(null, "msgs"); serializer.endDocument(); os.close();
Toast.makeText(this, "XML序列化成功", 0).show(); } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(this, "XML序列化失败", 0).show();
}
}
}
MsgInfo.java
package com.test.MsgInfo; /**
* @author daomul
* 短信信息
*/ public class MsgInfo { private long date;
private int type;
private String body;
private String address;
private int id; //无参构造方法
public MsgInfo() { } //有参构造方法 Generate Constructor use fields...
public MsgInfo(long date, int type, String body, String address,int id) {
super();
this.date = date;
this.type = type;
this.body = body;
this.address = address;
this.id = id;
} //setter and getter
public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public long getDate() {
return date;
}
public void setDate(long date) {
this.date = date;
}
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) {
this.address = address;
} }
注: 写文件到SD卡中需要 user 权限
Android - XML序列化的更多相关文章
- Android 使用xml序列化器生成xml文件
在<Android 生成xml文件>一文中使用流的形式写入xml格式文件,但是存在一定的问题,那就是在短信内容中不能出现<>之类的括号,本文使用xml序列化器来解决 xml序列 ...
- XML序列化 判断是否是手机 字符操作普通帮助类 验证数据帮助类 IO帮助类 c# Lambda操作类封装 C# -- 使用反射(Reflect)获取dll文件中的类型并调用方法 C# -- 文件的压缩与解压(GZipStream)
XML序列化 #region 序列化 /// <summary> /// XML序列化 /// </summary> /// <param name="ob ...
- 二、Android XML数据解析
XML,可扩展标记语言.可以用来存储数据,可以看做是一个小型的数据库,SharedPreference就是使用XML文件存储数据的,SQLite底层也是一个XML文件,而在网络应用方面,通常作为信息的 ...
- Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)
Android XML shape 标签使用详解 一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...
- [.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类
[.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类 本节导读:本节主要介绍通过序列 ...
- .NET中XML序列化的总结
[题外话] 以前虽然常用.NET中的序列化,但是常用的BinaryFormatter,也就是二进制文件的序列化,却鲜用XML的序列化.对于XML序列化,.NET中同样提供了一个非常方便的工具XmlSe ...
- XML序列化和反序列化
上篇总结了下JSON的序列化和反序列化,博园中大牛给了很多牛叉的评论,学习了不少. 不过在上篇中忘了把json序列化和反序列化的另外一种方式写上去了,这里做个简单的补充: Json篇:http://w ...
- XML 序列化与反序列化
XML序列化与反序列化 1.将一个类转化为XML文件 /// <summary> /// 对象序列化成XML文件 /// </summary> /// <param na ...
- 关于XML序列化与CultureInfo
不同的计算机系统可能有着不同的CultureInfo,例如在中文环境下日期通常这样显示03/30/2016,而在有的操作系统下它可能是这样的30.3.2016. 这样的话带来一个问题,例如在中文环境下 ...
随机推荐
- 关于SqlServer数据库C盘占用空间太大问题
工程需要用上了SQL SERVER2008 ,主要作为数据仓库使用,使用SSIS包从ORACEL10G中抽取数据到MS SQL中.环境是win2003x64的,驱动使用的oracle10gX64.使用 ...
- laravel 参数配置
1:在项目根目录下有个叫.env的文件.这个文件是配置配置.由config文件下的app.php 直接读取. #参数解释 APP_ENV=local #访问地址 APP_DEBUG=true #是否开 ...
- JavaScript 关键字快速匹配
来源: http://www.cnblogs.com/index-html/archive/2013/04/17/js_keyword_match.html http://www.etherdream ...
- Jquery与.net MVC结合,通过Ajax
在工作中做了这么一个东西. Html端: @using Test.fh.Project.Storefront.ViewModels @using Test.fh.Project.Storefront. ...
- 5个界面效果很炫的JavaScript UI 框架
Web 开发很简单,Web 应用的 UI 开发却很复杂,如果能够利用一些成熟的 UI 框架可以大大的减少开发的复杂度.本文向你介绍 5 款界面效果很不错的 JS 框架. 1. ExtJS ExtJS ...
- loadrunner循环执行某个动作
1.action部分定义 int i; int count; 2. 打算循环的代码前代码如下: count=rand() % 8 +1; for(i=0;i<coun ...
- Windoows窗口程序七
WM_QUIT--用于结束消息循环处理 wParam - PostQuitMessage函数传递的参数 lParam - 不使用 当GetMessage收到这个消息后,会返回false,结束while ...
- Office 2013 标点符号自动变成calibri字体
在字体设置中,已经设置西文字体为“(使用中文字体)”,结果office 2013还是自动将输入的英文符号自动变成calibri字体. 举例:输入以下一段话 好好学习,天天向上. 中文字体中后面跟着标点 ...
- mongodb自动关闭:页面太小,无法完成操作
解决方法: 增大虚拟内存
- R语言低级绘图函数-rect
rect 函数用来在一张图上添加矩形,只需要指定左下角和右上角的坐标的位置,就可以画出一个矩形 基本用法: plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), ...