美文网首页
xml文件的备份

xml文件的备份

作者: 蛋蛋不哭 | 来源:发表于2016-04-15 07:14 被阅读129次

    我们要想创建 xml 文件,首先必须知道xml文件的几个属性。

    • 注: SD卡权限一定要加
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    
    • 布局文件没什么,就一个Button控件
    xml备份.jpg 文件备份.jpg

    1.创建基类Smsinfo.java

    public class Smsinfo {
    
        private String id;
        private String name;
        private String qq;
        private String time;
        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getQq() {
            return qq;
        }
        public void setQq(String qq) {
            this.qq = qq;
        }
        public String getTime() {
            return time;
        }
        public void setTime(String time) {
            this.time = time;
        }
        public Smsinfo(String id, String name, String qq, String time) {
            super();
            this.id = id;
            this.name = name;
            this.qq = qq;
            this.time = time;
        }
        public Smsinfo() {
            
        }
    }
    

    2.创建备份MainActivity.java

    public class MainActivity extends Activity implements OnClickListener{
    
        private Button btn;
        private List<Smsinfo> smslist = null;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            iviview();
            //通过一个集合来 存放 我们索要备份的数据
            smslist = new ArrayList<Smsinfo>();
            //写一个随机数
            Random r = new Random();
            //遍历 得到 很多值
            for(int i=0;i<10;i++){
                smslist.add(new Smsinfo(i+"", "name"+i, r.nextInt(2)+1+"121212121", r.nextInt(2)+1+"0000000"));
            }
        }
        private void iviview() {
            btn = (Button) findViewById(R.id.btn);
            btn.setOnClickListener(this);
        }
        //利用序列化器
        @SuppressLint("ShowToast") @Override
        public void onClick(View v) {
            //创建一个新的序列化器
            XmlSerializer serializer = Xml.newSerializer();
            //创建一个新文件 保存到 sd卡的根目录,SD卡权限不要忘记加
            File file = new File(Environment.getExternalStorageDirectory(),"smsinfo.xml");
            Log.e("--------MainActivity--------", "文件已经创建 ");
            //引入输出流
            FileOutputStream fileOutputStream;
            try {
                fileOutputStream = new FileOutputStream(file);
                //指定那个文件 ,设置编码方式
                serializer.setOutput(fileOutputStream, "utf-8");
                //设置 头部 那个开始《》 标签
                serializer.startDocument("utf-8", true);
                //开始 的 节点 节点的设置不需要编码方式
                serializer.startTag(null, "Smss");
                //接下来  我们遍历 集合 得到值
                for(Smsinfo s:smslist){
                    serializer.startTag(null, "Sms");
                    //attribute就是 和节点在同一行的那个属性
                    serializer.attribute(null, "id", s.getId());
                    serializer.endTag(null, "Sms");
                    
                    serializer.startTag(null, "name");
                    //text就是 输入输出的文本
                    serializer.text(s.getName());
                    serializer.endTag(null, "name");
                    
                    serializer.startTag(null, "qq");
                    serializer.text(s.getQq());
                    serializer.endTag(null, "qq");
                    
                    serializer.startTag(null, "time");
                    serializer.text(s.getTime());
                    serializer.endTag(null, "time");
                }
                //结束的节点
                serializer.endTag(null, "Smss");
                //结束 的《》
                serializer.endDocument();
                //关闭输出流
                fileOutputStream.close();
                Toast.makeText(this, "备份成功", 1).show();
            } catch (Exception e) {
                e.printStackTrace();
                Toast.makeText(this, "备份失败", 1).show();
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:xml文件的备份

          本文链接:https://www.haomeiwen.com/subject/eqqnlttx.html