xml文件存储

模拟备份短信功能,首先要知道存短信得分为四个部分,短信体,时间,传送方式:接收/发送,还有就是电话号码。

然后我们定义一个javabean对他进行封装。然后通过stringbuffer拼接好,传入到本地sd卡中,就完成了;

短信封装类

package com.example.xmlsave;

public class Mess {
    private String body;
    private String date;
    private String address;
    private String type;
    public String getBody() {
        return body;
    }
    public void setBody(String body) {
        this.body = body;
    }
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public Mess(String body, String date, String address, String type) {
        super();
        this.body = body;
        this.date = date;
        this.address = address;
        this.type = type;
    }

}

activity代码

package com.example.xmlsave;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
    private Button btn;
    private List<Mess> list ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list = new ArrayList<Mess>();
        //模拟存入短信到list里
        for (int i = 0; i < 10; i++) {
            //短信封装对象
            Mess mess = new Mess("吉明哲真帅"+i, new Date()+"", "138"+i, "1");
            list.add(mess);
        }

        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                //用stringbuffer进行拼接
                StringBuffer sb = new StringBuffer();
                sb.append("<?xml version=‘1.0‘ encoding=‘utf-8‘?>");
                sb.append("<Message>");
                for (int i = 0; i < list.size(); i++) {
                    sb.append("<msm>");
                    sb.append("<body>");
                    sb.append(list.get(i).getBody());
                    sb.append("</body>");

                    sb.append("<type>");
                    sb.append(list.get(i).getType());
                    sb.append("</type>");

                    sb.append("<date>");
                    sb.append(list.get(i).getDate());
                    sb.append("</date>");

                    sb.append("<address>");
                    sb.append(list.get(i).getAddress());
                    sb.append("</address>");

                    sb.append("</msm>");
                }
                sb.append("</Message>");

                //获得sd卡路径
                File file = new File(Environment.getExternalStorageDirectory()+File.separator+"mes.xml");
                try {
                    FileOutputStream fos = new FileOutputStream(file);
                    fos.write(sb.toString().getBytes());
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }
        });

    }

}

通过xml系列化器生成xml文件

package com.example.xmlsave;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.xmlpull.v1.XmlSerializer;

import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.util.Xml;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
    private Button btn;
    private List<Mess> list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list = new ArrayList<Mess>();
        // 模拟存入短信到list里
        for (int i = 0; i < 10; i++) {
            // 短信封装对象
            Mess mess = new Mess("吉明哲真帅" + i, new Date() + "", "138" + i, "1");
            list.add(mess);
        }

        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // 判断sd卡是否挂载
                if (Environment.getExternalStorageState().equals(
                        Environment.MEDIA_MOUNTED)) {

                    File file = new File(Environment
                            .getExternalStorageDirectory()
                            + File.separator
                            + "sms2.xml");
                    try {
                        FileOutputStream fos = new FileOutputStream(file);
                        // 声明xml序列化对象
                        XmlSerializer xs = Xml.newSerializer();
                        // 初始化 参数为文件输出流和生成xml文件的编码集
                        xs.setOutput(fos, "utf-8");
                        // 开始生成xml文件 参数为头文件的编码集 xml文件是否独立
                        xs.startDocument("utf-8", true);
                        // 生成开始节点 命名空间 节点的名字不用加尖括号
                        xs.startTag(null, "message");
                        for (int i = 0; i < list.size(); i++) {
                            xs.startTag(null, "msm");

                            xs.startTag(null, "body");
                            // 内容
                            xs.text(list.get(i).getBody());
                            xs.endTag(null, "body");

                            xs.startTag(null, "type");
                            xs.text(list.get(i).getType());
                            xs.endTag(null, "type");

                            xs.startTag(null, "date");
                            xs.text(list.get(i).getDate());
                            xs.endTag(null, "date");

                            xs.startTag(null, "address");
                            xs.text(list.get(i).getAddress());
                            xs.endTag(null, "address");

                            xs.endTag(null, "msm");

                        }

                        xs.endTag(null, "message");

                        // 告诉序列化器生成完毕
                        xs.endDocument();

                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                }

            }
        });

    }

}
时间: 2024-10-13 11:28:03

xml文件存储的相关文章

ContentProvider备份短信,以xml文件存储

因为短信的内容已经通过ContentProvider暴露出来,所以我们可以直接用内容解析者获取短信内容. 想要获取短信内容,你需要知道的一些东西: 1.Uri uri = Uri.parse("content://sms/"); 2.Cursor cursor = getContentResolver().query(uri,new String[]{"address","date","body"},null,null,nul

C#读取XML文件

--硬盘Xml文件存储路径:d:\xmlFile\Testxml.xml xml文件内容: <Root> <Tab> <ID>245575913</ID> <name>Tab</name> <Tabs> <Tab2> <ID>1</ID> <TabID>245575913</TabID> <Name2>ID</Name2> </Tab

Android开发之资源文件存储

本文介绍在Android开发中关于资源文件的存储操作.对于Android资源也是非常重要的,主要包括文本字符串(strings).颜色(colors).数组(arrays).动画(anim).布局(layout).图像和图标(drawable).音频视频(media)和其他应用程序使用的组件. 在Android开发中,资源文件是我们使用频率最高的,无论是string,drawable,还是layout,这些资源都是我们经常使用到的,而且为我们的开发提供了很多方便,不过我们平时接触的资源目录一般都

web.xml文件中&lt;mime-mapping&gt;

http://blog.csdn.net/sccemstanford/article/details/9064155 ———————————————————————————————————————————————————————————————————————————————— 最近做Jeecms项目中发现使用IE9下载文件(doc,docx等)时,浏览器有时直接打开文件显示乱码有时可以下载但下载后是一文件夹是里面一堆以 xml文件(微软的office存储文件信息主要以xml文件存储),后来跟踪

读书笔记5:json与xml数据存储

实际项目数据存储往往会用到相对复杂的存储格式,不仅仅是简单的字符串,本章学习的是如何在程序中使用成熟的数据格式,如Json,xml等来实现与程序业务相关的数据存储. 一.json数据序列化存储 json全程JavaScript Object Notation ,是一种轻量级的数据交换语言,易于阅读.json的特点是数据格式比较简单,易于读写,格式是压缩的,占用带宽小并易于解析,所以通常会用json格式传送数据或存储数据 json语法简介: object:一个对象以"{"开始,并以&qu

无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.demo1" /> 上面targetPackage指定的包要和应用的package相同. (2)在清单文件中ap

LabVIEW数据记录和存储—XML文件

XML(eXtensible Markup Language)是一种目前广泛使用的数据传输和存储的格式,其本质上是一种文本文件,可以使用任何一个文本编辑工具打开和修改.类似于HTML,XML被设计为具有自我描述性,也是使用标签定义文档的结构和含义.本文仅仅是介绍LabVIEW中对XML文件的操作方式和支持函数, http://liuhao815.blog.163.com/blog/static/231429782009922112353535/

js上传文件带参数,并且,返回给前台文件路径,解析上传的xml文件,存储到数据库中

ajaxfileupload.js jQuery.extend({ createUploadIframe: function(id, uri) { //create frame var frameId = 'jUploadFrame' + id; if(window.ActiveXObject) { var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '&qu

Android应用开发之存储和解析xml文件

package com.m520it.saveandparseXML; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.TextView; import com.m520it.temp1.R; public class MainActivity extends Activity { @Override protected void onCr