在安卓app开发中,有时候需要读取和写入一些配置信息,这些配置信息可以是用户的设置、应用的常量等等。常见的配置文件格式有XML和JSON。接下来,我们介绍安卓app开发中如何读写这些配置文件。
XML配置文件的读写
Android系统中提供了许多读写XML文件的API类,其中最常用的是XmlPullParser和XmlSerializer。
XmlPullParser可以将XML文件转换成java对象,以便于我们读取XML文件,而XmlSerializer则可以将java对象转换为XML文档,以便于我们写入XML文件。
在安卓开发中,通常将XML配置文件放在res/xml/目录下,在代码中使用Resources类来获取XML文件的InputStream,然后使用XmlPullParser解析XML文件。
读取XML文件示例代码:
```
// 获取XML文件的InputStream
InputStream is = getResources().openRawResource(R.xml.config);
// 创建XmlPullParser解析器
XmlPullParser xmlPullParser = Xml.newPullParser();
xmlPullParser.setInput(is, "UTF-8");// 设置输入流和编码信息
// 解析XML文件
int eventType = xmlPullParser.getEventType();
while(eventType != XmlPullParser.END_DOCUMENT){
switch (eventType){
case XmlPullParser.START_TAG:
String tagName = xmlPullParser.getName();
if("config".equals(tagName)){
String version = xmlPullParser.getAttributeValue(null, "version");
Log.i("MainActivity", "version:" + version);
}
break;
case XmlPullParser.END_TAG:
break;
}
eventType = xmlPullParser.next();
}
is.close();
```
解析上面代码:
1. 使用getResources().openRawResource()方法获取配置文件的InputStream流。
2. 创建XmlPullParser对象进行解析,设置输入流和编码。
3. 解析步骤,
1. 判断当前事件的类型是否为XML开始标签。
2. 获取标签名,判断是否为“config”。
3. 获取version属性值。
4. 使用Log来输出version的值。
写入XML文件示例代码:
```
try {
// 创建XmlSerializer进行XML文件编写
XmlSerializer serializer = Xml.newSerializer();
// 设置输出流和编码
FileOutputStream fos = openFileOutput("config.xml", Context.MODE_PRIVATE);
serializer.setOutput(fos, "UTF-8");
// 开始写入XML文件
serializer.startDocument("UTF-8", true);
serializer.startTag(null, "config");
serializer.attribute(null, "version", "1.0");
serializer.endTag(null, "config");
serializer.endDocument();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
```
解析上面代码:
1. 使用openFileOutput()方法创建名为“config.xml”的文件,并获取其输出流。
2. 使用XmlSerializer对象设置输出流和编码。
3. 开始创建XML文件,
1. 开始文档,设置编码。
2. 开始标签“config”,使用attribute方法添加“version”属性。
3. 结束标签“config”。
4. 结束文档,并关闭文件输出流。
JSON配置文件的读写
Json配置文件的读写相对简单。在安卓开发中,可以使用Gson库来进行Json字符串和Java对象之间的转换。其中,toJson()方法将Java对象转换为Json字符串,fromJson()方法将Json字符串转换为Java对象。
常用的Gson API类有Gson和JsonParser。
读取Json配置文件示例代码:
```
// 获取Json文件的InputStream
InputStream is = getResources().openRawResource(R.raw.config);
// 将InputStream转换为String
byte[] buffer = new byte[is.available()];
is.read(buffer);
String json = new String(buffer, "UTF-8");
is.close();
// 解析Json格式文本
Gson gson = new Gson();
Config config = gson.fromJson(json, Config.class);
Log.i("MainActivity", config.getVersion());
```
解析上面代码:
1. 使用getResources().openRawResource()方法获取配置文件的InputStream流。
2. 读取InputStream并转换为String类型的Json内容。
3. 使用Gson类将Json字符串转换为Java对象Config。
4. 使用Log输出Config对象的getVersion()方法返回的值。
写入Json配置文件示例代码:
```
// 创建Config对象并设置属性值
Config config = new Config();
config.setVersion("1.0");
// 使用Gson将Config对象转换为Json字符串
Gson gson = new Gson();
String json = gson.toJson(config);
try {
// 创建Json文件
FileOutputStream fos = openFileOutput("config.json", Context.MODE_PRIVATE);
fos.write(json.getBytes());
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
```
解析上面代码:
1. 创建Config对象,并使用setVersion()方法设置属性值。
2. 使用Gson将Config对象转换为Json字符串。
3. 使用openFileOutput()方法创建名为“config.json”的文件,并获取其输出流。
4. 写入Json字符串,并关闭文件输出流。
总结
安卓app开发中,读写XML和Json格式的配置文件是一项非常实用的技能。了解XmlPullParser、XmlSerializer、Gson等API类的使用,能够更加方便和快捷地维护和读写应用配置信息。