利用XML的序列化器来存储一些文本文件

来源:互联网 发布:淘宝刷好评微信群 编辑:程序博客网 时间:2024/06/05 12:36

文件保存

  • 很多时候都用用到xml来保存一些文本文件

    public static void smsBackup(Context context,String path) throws IllegalArgumentException, IllegalStateException, IOException{ContentResolver resolver = context.getContentResolver();/** * 要将一个文件保存成XML文件,则必须要生成一个XML文件用于保存这些内容。 * 要生成XML文件,则需要一个XML序列化器 */XmlSerializer serializer = Xml.newSerializer();File file = new File(path);FileOutputStream os = new FileOutputStream(file);serializer.setOutput(os, "utf-8");serializer.startDocument("utf-8", true);serializer.startTag(null, "smss");Uri uri = Uri.parse("content://sms");Cursor cursor = resolver.query(uri, new String[]{"address","date","type","body"}, null, null, null);while (cursor.moveToNext()) {    String address = cursor.getString(0);    String date = cursor.getString(1);    String type = cursor.getString(2);    String body = cursor.getString(3);}cursor.close();serializer.endTag(null, "smss");serializer.endDocument();       }
    1. 先定义一个上下文的解析器。这里用的resolver.这个上下文的解析器遍历根据指定条件利用while循环遍历整个数据库中所有的内容;
    2. 遍历的条件有如下这些:
    3. 指定现在要去遍历的文本文件存放的路径;

      Uri uri = Uri.parse("content://sms");
    4. 设定遍历的条件。这里遍历之后只要获取到的指定的这四个字段。
    5. 其他的选择田间现在一概不讨论。

    6. 定义一个xml的序列化器来装得到的数据。

      XmlSerializer serializer = Xml.newSerializer();

    7. 得到的序列化器要对其输入的路径和编码方式进行设置。首先就是路径,在文件当中已经跟上下文一起传入了一个文件存入路径,用文件输入流的形式将其存入。
    8. 而后再设定文件的编码方式;

注意

  • 序列化器的标签和文件都要开始和结束程度出现,并且前后呼应以保证文件格式不出错。
0 0