利用XML文件備份短信---手動拼字符串

利用xml文件備份短信

第一:用一個類來描述短信,把每一條短信封裝成一個對象,

package com.itheima.createxml.domain;

public class Message {
    //短信的四個屬性
    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 Message(String body, String date, String address, String type) {
        super();
        this.body = body;
        this.date = date;
        this.address = address;
        this.type = type;
    }


}
//設置一個button點擊備份短信
<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="備份短信" 
        android:onClick="click"
        />

第二:短信的xml文件備份格式爲一個個節點存儲的,暫時拼成特定的格式存儲

package com.itheima.createxml;

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

import com.itheima.createxml.domain.Message;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {

    List<Message> smsList;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //利用集合存儲短信
        smsList = new ArrayList<Message>();
        ////利用for循環創建10條短信
        for(int i = 0; i < 10; i++){
            Message sms = new Message("小志好棒" + i, System.currentTimeMillis() + "", "138"+i+i, "1");
            smsList.add(sms);
        }
    }

    public void click(View v){
        //在內存中把xml備份短信的格式拼接出來
        StringBuffer sb = new StringBuffer();
        //xml頭文件
        sb.append("<?xml version='1.0' encoding='utf-8' standalone='yes' ?>");
        sb.append("<messages>");
        for (Message sms : smsList) {
            sb.append("<sms>");
            //內容
            sb.append("<body>");
            sb.append(sms.getBody());//讀取body
            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>");
        //往sd卡寫數據需要添加權限
        File file = new File("sdcard/sms.xml");
        try {
            FileOutputStream fos = new FileOutputStream(file);
            fos.write(sb.toString().getBytes());
            fos.close();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}
發佈了184 篇原創文章 · 獲贊 9 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章