Andriod开发——数据存储及XML序列化的学习
2017-06-14 21:46
573 查看
序列化是将对象状态转换为可保持或传输的过程。在序列化对象时,需要使用XmlSerializer序列化器,可将I/O流中传输的对象变得像基本数据类型一样,实现传递的功能。序列化后的对象以XML的形式保存(类似于HTML里面的标签)。要将数据序列化,首先要做的是创建与该XML相对应的序列化器(XmlSerializer),然后将Person对象转换为XML文件。
XML序列化的实例代码如下:
上述代码中,通过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的内部存储空间,相当于应用在内部存储上的根目录。操作方法如下:
外部存储是指将文件存储到一些外围设备上,由于外围设备可能被移除,丢失或者是处于其他状态,因此在使用外围设备之前必须使用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();
}
}
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();
}
}
相关文章推荐
- 【Android开发学习07】存储简单数据的利器--Preferences
- 【Cocos2d-X开发学习笔记】第30期:游戏中数据的存储(下)
- iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist
- android菜鸟学习笔记19----Android数据存储(三)XML文件的解析及序列化
- iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)
- IOS学习之ios开发之数据的持久化存储机制
- 【深入浅出ios开发】数据存储-----XML属性列表(plist)归档
- 学习IOS开发UI篇--数据存储
- 黑马程序员——IOS学习九:ios开发之数据的持久化存储机制——黑马 ios 技术博客
- 【Cocos2d-X开发学习笔记】第29期:游戏中数据的存储(上)
- Android开发学习---如何写数据到外部存储设备(sd卡),Environment.getExternalStorageDirectory,怎么获取sd卡的大小?
- Win8应用开发数据存储及xml文件读写
- 【深入浅出ios开发】数据存储-----XML属性列表(plist)归档
- windows8开发-metro应用中使用xml+json作为数据存储方式
- 【Cocos2d-X开发学习笔记】第29期:游戏中数据的存储(上)
- ios开发:NSKeyedUnarchiver,数据序列化,本地存储
- Android入门学习笔记(一)|基础知识|文件数据存储读取|解析XML
- iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)
- 【iOS开发-95】JSON反序列化、XML数据解析以及主线程中的UI更新等小细节
- Oracle XML学习笔记1 - 存储XML数据