简单XML文件

来源:互联网 发布:apachemysql数据库管理 编辑:程序博客网 时间:2024/06/07 06:18
主要介绍了使用XML编辑器将自定义的内容以XML的形式进行存储,User类这里不再添加。
public class MainActivity extends ActionBarActivity {    private ProgressBar pb_id;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        // 思路:        // 1、获得界面上俺们关心的控件        pb_id = (ProgressBar) findViewById(R.id.pb_id);        // 2、准备与事件属性值吻合的方法    }    /**     * 开始备份     *      * @param view     */    public void beginBackup(View view) {        // 核心逻辑思路:        // 1、获得联系人信息        List<User> allContactsInfos = new LinkedList<>();        getAllUsers(allContactsInfos);        // 2、开始备份(通过循环,将步骤1中联系人的信息依次写入到sd卡中相应的文件里面)        // -->pull序列化技术        XmlSerializer serializer = Xml.newSerializer();        // 步骤:        // ①指定序列化的目的地        FileWriter writer = null;        try {            writer = new FileWriter(new File(                    Environment.getExternalStorageDirectory(),                    "contactList.xml"));            serializer.setOutput(writer);            // ②根据xml文件中数据书写的样式,依次调用方法,将内存中的数据写入到输出流            // a)声明部分            // b)文档开始            serializer.startDocument("UTF-8", true);            // 根节点开始            serializer.startTag(null, "users");            int cnt = 0;            pb_id.setMax(allContactsInfos.size());            // c)通过循环,从数据源中读取数据,依次写入            for (User user : allContactsInfos) {                // 每循环一次,写入一个用户的信息                serializer.startTag(null, "user");                // id                serializer.startTag(null, "id");// <id>xxxx</id>                serializer.text(user.getId() + "");                serializer.endTag(null, "id");                // 名字                serializer.startTag(null, "name");                serializer.text(user.getName());                serializer.endTag(null, "name");                // 电话号码                serializer.startTag(null, "phoneNum");                serializer.text(user.getPhoneNum());                serializer.endTag(null, "phoneNum");                // 籍贯                serializer.startTag(null, "address");                serializer.text(user.getAddress());                serializer.endTag(null, "address");                serializer.endTag(null, "user");                cnt++;                pb_id.setProgress(cnt);            }            // 根节点结束            serializer.endTag(null, "users");            // d)文档结束            serializer.endDocument();            serializer.flush();            Toast.makeText(this, "恭喜!备份成功!呵呵。。。。", Toast.LENGTH_SHORT).show();        } catch (IllegalArgumentException | IllegalStateException | IOException e) {            e.printStackTrace();        } finally {            if (writer != null) {                try {                    writer.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }    }    /**     * 模拟读取手机联系人信息     *      * @param allContactsInfos     */    private void getAllUsers(List<User> allContactsInfos) {        for (int i = 1; i <= 500; i++) {            allContactsInfos.add(new User(i, "独孤求败" + i, "110999" + i, "华山之巅"                    + i));        }    }}

0 0
原创粉丝点击