Android开发之xml文件的序列化
2013-11-27 22:27
239 查看
Xml文件的序列化就是把数据从内存保存到文件中,使用xml文件保存就叫:Xml文件序列化;也叫串行化
工程目录结构:
保存到文件的结果: 保存到设备上的位置:
实现代码
Demo下载
点击打开链接
工程目录结构:
保存到文件的结果: 保存到设备上的位置:
实现代码
package com.example.xmlserializer; import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlSerializer; import com.example.xmlserializer.domain.UserInfo; import android.os.Bundle; import android.os.Environment; import android.util.Xml; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; import android.app.Activity; public class MainActivity extends Activity implements OnClickListener { private List<UserInfo> users; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button save = (Button) findViewById(R.id.btnSave); save.setOnClickListener(this); users = new ArrayList<UserInfo>(); for (int i = 0; i < 5; i++) { users.add(new UserInfo("aaa" + i, i, "男", 1110, i)); } } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.btnSave: SaveXml(); break; default: break; } } private void SaveXml() { try { XmlSerializer serialzer = Xml.newSerializer(); File file = new File(Environment.getExternalStorageDirectory() + File.separator + "backup.xml"); FileOutputStream fos = new FileOutputStream(file); serialzer.setOutput(fos, "utf-8"); serialzer.startDocument("utf-8", true); // 文件开头 serialzer.startTag(null, "users"); // xml文件的根标签 for (UserInfo user : users) { serialzer.startTag(null, "user"); serialzer.attribute(null, "id", user.getId() + ""); serialzer.startTag(null, "name"); serialzer.text(user.getName()); serialzer.endTag(null, "name"); serialzer.startTag(null, "age"); serialzer.text(user.getAge() + ""); serialzer.endTag(null, "age"); serialzer.startTag(null, "sex"); serialzer.text(user.getSex()); serialzer.endTag(null, "sex"); serialzer.startTag(null, "brithday"); serialzer.text(user.getBrithday() + ""); serialzer.endTag(null, "brithday"); serialzer.endTag(null, "user"); } serialzer.endTag(null, "users"); serialzer.endDocument(); // 文件结尾 fos.close(); Toast.makeText(this, "保存成功", Toast.LENGTH_LONG).show(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); Toast.makeText(this, "保存失败", Toast.LENGTH_LONG).show(); } } }
Demo下载
点击打开链接
相关文章推荐
- Android开发adb环境配置
- 从零开始学android:Android事件处理—下拉列表框与OnItemSelectedListener
- 一步一步学android控件(之二十一)—— ListView & ExpandableListView
- android画集合图形
- android安全卫士实现黑名单管理:黑名单号码的删除修改
- ActionBar和Fragment结合ViewPager实现TabActivity
- 【Android Developers Training】 11. 支持不同语言
- Android系列---JSON数据解析
- android EditText 全面阐述
- 基于adt-bundle-windows-x86的android开发环境搭建
- 从零开始学android:Android事件处理—单选钮与OnCheckedChangeListener
- Android系统Recovery工作原理之使用update.zip升级过程分析(一)---update.zip包的制作
- Android计算文件的MD5和SHA1
- 【Android Developers Training】 10. 序言:支持不同设备
- android安全卫士实现黑名单管理:实现黑名单中添加号码
- android中多分辨率支持方法
- Android学习路径图
- Android数据存储(External Storage,外部存储)
- Java(Android)与C++之间的Socket通信
- Android获取电池电量信息