android面试题总结02 在android中本地写入一个xml文件
来源:互联网 发布:淘宝一元拍卖的玉真假 编辑:程序博客网 时间:2024/06/08 04:30
上次去面试一家做framework层的公司,问到了很多java基础,还有怎么在android本地用java写一个xml。
然后想了半天想起来看黑马视频里学过XmlSerializer这个xml序列化工具,然后我就回答有个XML序列化工具,然后里面有setTag方法(这个其实应该是startTag)
反正就是回答的很不清楚,然后面试官说可以理解,毕竟这个不常用,我知道你知道,用过就行了,就这样过了。后来回来查了一下源码,具体在android中写一个
xml文件代码如下:
XmlSerializer serializer = Xml.newSerializer();// 创建Xmlserializer的对象// 指定序列化对象输出的流FileOutputStream fos = new FileOutputStream("/mnt/sdcard/person.xml");serializer.setOutput(fos, "utf-8");serializer.startDocument("utf-8", true);// 写xml头serializer.startTag(null, "persons");// 开始的根节点for (Person person : personList) {serializer.startTag(null, "person");serializer.attribute(null, "id", String.valueOf(person.getId()));// 写人的姓名serializer.startTag(null, "name");serializer.text(person.getName());serializer.endTag(null, "name");// 写人的年龄serializer.startTag(null, "age");serializer.text(String.valueOf(person.getAge()));serializer.endTag(null, "age");serializer.endTag(null, "person");
另外解析刚才的xml文件
// 创建Pull解析器对象XmlPullParser parser = Xml.newPullParser();// 指定解析的文件FileInputStream fis = new FileInputStream("/mnt/sdcard/person.xml");parser.setInput(fis, "UTF-8");int eventType = parser.getEventType();// 获得解析器的第一个事件类型 List<Person> personList = null;Person person = null;String name;while(eventType != XmlPullParser.END_DOCUMENT) {// 如果事件类型不等于结束的类型, 继续循环String tagName = parser.getName();// 获得当前节点的名称// 解析数据switch (eventType) {case XmlPullParser.START_TAG:// 代表开始节点 <persons>if("persons".equals(tagName)) {// 初始化集合personList = new ArrayList<Person>();} else if("person".equals(tagName)) {person = new Person();person.setId(Integer.valueOf(parser.getAttributeValue(null, "id")));} else if("name".equals(tagName)) {name = parser.nextText();// 当前是<name> 节点 nextText是取<name> 后边的值person.setName(name);} else if("age".equals(tagName)) {person.setAge(Integer.parseInt(parser.nextText()));}break;case XmlPullParser.END_TAG:// 代表结束节点 </person>if("person".equals(tagName)) {// 当前是</person>// 把上面person的对象添加到集合中personList.add(person);}break;default:break;}eventType = parser.next();// 赋值下一个事件类型}
0 0
- android面试题总结02 在android中本地写入一个xml文件
- Android向本地写入一个XML文件和解析XML文件
- Android中面试题总结五
- android面试题总结
- android面试题总结
- android 面试题总结
- android面试题总结
- android面试题总结
- Android面试题总结
- android面试题总结
- Android面试题总结
- Android面试题总结
- Android面试题总结
- Android面试题总结
- Android 面试题总结
- android面试题总结
- Android面试题总结
- android 面试题总结
- 线程(2) ---volatile
- View类详解
- Java中文字编码问题详解
- [黑马程序员](第37天)今晚敲的一些代码题
- Android Studio 卡在building界面
- android面试题总结02 在android中本地写入一个xml文件
- 博客第一篇
- 快速排序
- [2015-07-26] python008
- NameNode HA(翻译)
- 111
- hdu 5297 - Y sequence( 2015 Multi-University Training Contest 1)容斥原理
- 【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器
- oozie 学习笔记 action