Andriod开发——数据存储及XML序列化的学习
来源:互联网 发布:python 生成高斯分布 编辑:程序博客网 时间:2024/06/07 22:17
序列化是将对象状态转换为可保持或传输的过程。在序列化对象时,需要使用XmlSerializer序列化器,可将I/O流中传输的对象变得像基本数据类型一样,实现传递的功能。序列化后的对象以XML的形式保存(类似于HTML里面的标签)。要将数据序列化,首先要做的是创建与该XML相对应的序列化器(XmlSerializer),然后将Person对象转换为XML文件。
XML序列化的实例代码如下:
XmlSerializer serializer = Xml.newSerializer();serializer.setOutput(file, "UTF-8");serializer.startDocument("UTF-8", true);serializer.startTag(null, "persons");serializer.text("Vicky");serializer.endTag(null, "name");serializer.endDocument();
上述代码中,通过XmlSerializer对象可以设置XML文件的编码方式,然后向文件写入XML文件标志,也就是<?xml version="1.0" encoding="utf-8" standalone="yes"?>代码。通过serializer.startTag(null,"persons")创建根节点<persons>,通过serialiaer.text()向该节点写入数据,最后创建结束节点</persons>,当执行到serializer.endDocument()时,表示整个文档写入结束。
一般在存储对象的时候,需要注意存储方法(外部存储和内部存储)。
内部存储是指将应用程序中的数据以文件的形式存储到设备内部存储空间中。其他应用程序如果要访问本文件会收到限制,应用程序被卸载时文件也会随之被删除。通过Context提供的openFileOutput()方法和openFileInput()方法分别获取FileOutputStream对象和FileInputStream对象。用getFilesDir()获取app的内部存储空间,相当于应用在内部存储上的根目录。操作方法如下:
String filename = "myfile";String string = "Hello world!";FileOutputStream outputStream;try{outputStream = openFileOutput(filename, Context.MODE_PRIVATE);outputStream.write(string.getBytes());outputStream.close();} catch(Exception e) {e.printStackTrace();外部存储是指将文件存储到一些外围设备上,由于外围设备可能被移除,丢失或者是处于其他状态,因此在使用外围设备之前必须使用Environment.getExternalStorageState()方法来确认外围设备是否可用,当外围设备可用且具有读写权限时,就可以通过FileInputStream、FileOutputStream或者FileReader、FileWriter对象来读写外围设备中的文件。
在外围设备中存储数据的代码如下 所示:
String state = Environment.getExternalStorageState();if(state.equals(Environment.MEDIA_MOUNTED)){ File SDpath = newFile(Environment.getExternalStoragePublicDirectory();File file = new File(SDpath,"data.txt");String data = "hello world";FileOutputStream fos;try{fos = new FileOutputStream(file);foe.write(data.getByte());fos.close();}catch(Exception e){e.printStackTrace();}}
- Andriod开发——数据存储及XML序列化的学习
- android程序开发之sharepreference的数据存储及xml文件的序列化
- Andriod开发——Activity数据传递的学习
- andriod的数据存储
- 单元测试&Logcat&数据存储&XML的序列化和解析
- Android学习(23) -- 数据存储之xml序列化器保存数据
- unity Dictionary序列化和反序列化及XML本地数据存储
- Andriod开发——SQlite数据库的学习
- Andriod开发——几种控件的学习
- Android学习笔记之—XML文件的序列化
- Andriod数据存储
- Win8应用开发数据存储及xml文件读写
- Andriod学习笔记4——AndroidManifest.xml分析
- andriod学习笔记——andriod框架
- 序列化 XML 数据
- andriod开发出现的错误及解决方案
- android开发学习(三)——sharedPreference,xml文件序列化和反序列
- Andriod开发-数据持久化技术
- 华为机试:将字符串里第一次出现的字符输出,重复出现的不显示
- 关于OpenCV源码的查看&&&openCV3.2配置x86版本&&用CMake编译其他vs版本的opencv
- PHP执行定时任务的实现思路(一)
- 一小时上手SaltStack
- 漫步数理统计三十一——依分布收敛
- Andriod开发——数据存储及XML序列化的学习
- java实现excel的demo
- caffe安装问题总结
- Unity Shader入门精要学习笔记
- [Leetcode] 204. Count Primes 解题报告
- 图片隐藏数据的技术
- 在 Ios下编译cocos
- Thinking in java -6 隐藏的实现 Hidden implementation
- 51 Nod 机器人走方格