XML文件写入和读取

还是用登录页面作为例子



  public void login(View v){
        if(cb.isChecked()){//选中复选框
            Toast.makeText(this,"读取文件",Toast.LENGTH_LONG);
            readxml(this);
        }else{
            Toast.makeText(this,"写入文件",Toast.LENGTH_LONG);
            writexmls(this);


        }
    }



写入数据成为xml

  public void writexmls(Context ct){
        XmlSerializer xmls=Xml.newSerializer();
        File ff=new File(ct.getFilesDir().toString(),"serial.xml");
        FileOutputStream os= null;
        try {
            os = new FileOutputStream(ff);
            xmls.setOutput(os, "utf-8");
            xmls.startDocument("utf-8", true);
            xmls.startTag(null, "groupnodes");
            xmls.startTag(null, "name");
            xmls.attribute(null, "id", "1");
            xmls.text(et_username.getText().toString());
            xmls.endTag(null, "name");


            xmls.startTag(null, "pwd");
            xmls.text(et_password.getText().toString());
            xmls.endTag(null, "pwd");
            xmls.endTag(null,"groupnodes");
            xmls.endDocument();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

文件路径



XML文件用XMLSerializer 写入数据,
用XMLPullParser读取xml数据


文件serial.xml文件内容

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>

<groupnodes><name id="1"></name><pwd></pwd></groupnodes>


从xml读取文件

 public void readxml(Context ct){
        XmlPullParser xpp=Xml.newPullParser();
        File ff=new File(ct.getFilesDir().toString(),"serial.xml");
        try{
            InputStream ips=new FileInputStream(ff);
            xpp.setInput(ips, "utf-8");
            int et=xpp.getEventType();
            while(et!=XmlPullParser.END_DOCUMENT){
                String name=xpp.getName();
                String tt=xpp.getText();


                if(name!=null){
                    if(name.equals("name")){
                        et_username.setText(xpp.nextText());
                    }else if(name.equals("pwd")){
                        et_password.setText(xpp.nextText());
                    }
                }
                et=xpp.next();
            }
        }catch (Exception e) {
            e.printStackTrace();
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值