写一个文件在SdCard
1>配置权限
<!-- 老版本,考虑兼容性 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- SD卡写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2>得到外存储器(SdCard)的路径
File dir = Environment.getExternalStorageDirectory();
File file = new File(dir , name);
3>创建一个输出流
FileOutputStream fos = new FileOutputStream(file);
4>写入流
fos.write(content.getBytes());
5>关闭流
fos.closed();
XmlPullParser解析pull解析xml
1>得到XmlPullParserFactory 解析器工厂
XmlPullParserFactory parserFactory = XmlPullParserFactory.newInstance();
2>new一个解析器XmlPullParser
XmlPullParser parser = parserFactory.newXmlPullParser();
3>得到要解析的xml文件流
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(“XX.xml”);
注意:
this.getClass().getClassLoader().getResourceAsStream(“XX.xml”);获得src根目录下的文件
this.getClass().getResourceAsStream(“XX.xml”);获得当前操作对象的所在包下
4>给解析器设置文件流和编码格式
parser.setInput(inputStream,”utf-8”);
5>得到解析事件类型
Int eventType = parser.getEventType();
6>开始判断读取文件
>>判断是否解析到结束标签
While(eventType != parser.END_DOCUMENT){
Swich(eventType){
>>开始标签
Case:parser.STAR_TAG
>>读取标签里面的内容
If(“persons”.equals(parser.getName)){
persons = new ArrayList<Person>();
}else if("person".equals(parser.getName())){
person = new Person();
int id = Integer.parseInt(parser.getAttributeValue(0));
person.id = id;
}else if("age".equals(parser.getName())){
int age = Integer.parseInt(parser.nextText());
person.age = age;
}
Berak;
>>结束标签
Case:parser.END_TAG
If(“person”.equals(parser.getName)){
List.add(person);
Person=null;
}
Break;
Default:
Break;
}
//执行下一个标签
eventType.next();
}
inputStream.close();
序列化生成一个xml文件
1>得到pull解析工厂
XmlPullParserFactory parserFactory = XmlPullParserFactory.newInstance();
2>得到序列化器
XmlSerializer serializer = parserFactory.newSerializer();
3>创建一个xml,并设置它的模式
FileOutputStream os = new FileOutput(“XX.xml”,Context.MODE_PRIVATE);
4>给序列化器指定文件输入流和编码
serializer.setInput(os,”utf-8”);
5>生成文档头 指定编码格式 和 是否是一个独立的文件
serializer.starDocument(“utf-8”,ture);
6>生成(root)根节点
serializer.starTag(null,tagName);
7>迭代集合
for(Lisr<XX> li : list){
serializer.starTag(null,tagName);
Serializer.attribute(null,tagName,ls.value);
serializer.endTag(null,tagName);
}
8>结束(root)根标签
Serializer.endTag(null,tagName);
9>生成文档结尾
serializer.endDocument();
10>关闭流
os.close();
共享首选项SharedPreferences可以方便的存储参数
首选项就是用户设置的操作信息,以xml的形式保存
比如,游戏中的设置,每次设置完后,就回对你的设置进行保存
保存选项信息
1>得到首选项
SharedPreference sp= getSharePreference(fileName,mode);
2>得到Editor
Editor editor = sp.edit();
3>通过Editor修改值
editor.setString(nameTag,value);
4>提交commit信息
editor.commit();
读取信息
1>得到首选项
SharedPreference sp = getSharedPreference(fileName,mode)
2>根据首选项,得到数据
String name = sp.getString(nameTag,””);
3>绑定值
可存储数据类型:long 、boolean、int、float、String