android之旅4: XML方式读写数据与文件创建

SharedPreference的使用

场景也是保存用户名和密码

// 写数据关键代码
public void login(View v){
    //同样先获取uname和password

    if (cb.isChecked()){
    //SharedPreferences是接口,路径是data/data/APP_NAME/shared_prefs
        SharedPreferences sp = getShardPreferences("info", MODE_PRIVATE);
        Editor ed = sp.edit();
        ed.putString("uname",uname);
        ed.putString("pwd",password);       
    }
}
// 读数据代码
public void readSharedPref(){
    SharedPreference sp = getSharedPreference("info", MODE_PRIVATE);
    // 第二个参数用来当取不到tag的值时返回值
    String uName = sp.getString("uname","");
    String pwd = sp.getString("pwd","");
}
/*
    SharedPreference生成的XML没有子元素,需要其他接口生成xml
    下面以短信备份为场景生成xml
*/
public void smsBackup(){
    XmlSerializer xs = Xml.newSerializer();
    File file = new File("fileName");
    FileOutputStream fos = new FileOutputStream(file);
    xs.setOutput(fos, "utf-8");//用utf-8编码方式生成文件
    xs.startDocument("utf-8", true);
    //按顺序插入节点
    xs.startTag(null, "message");
    xs.startTag(null, "sms");
    xs.text("this is a sms!"); //插入一个文本内容
    xs.endTag(null, "sms");
    xs.endTag(null, "message");

    xs.endDocument(); //文件生成完毕
}
// 读XML文件
pubic void readXml(){
    // 获取xml文件file和流fis

    XmlPullParser xp = Xml.newPullParser();
    xp.setInput(fis, "utf-8");
    int type = xp.getEventType(); //获取事件类型
    /*事件类型有
      START_DOCUMENT\START_TAG\TEXT\END_TAG\END_DOCUMENT
    */
    while (type!=XmlPullParser.END_DOCUMENT){
        switch(type){
            case XmlPullParser.START_TAG:
            if ("name".equals(xp.getName())){
                xp.nextText() //获取下一个文件节点,其实是标签内的内容
                ....    //业务逻辑
            }
            case XmlPullParser.END_TAG:
            .... //业务逻辑
        }
        type = xp.next(); //移动到下一个节点返回事件类型
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值