Sdcard文件操作+pull解析+首选项

文件的操作(sdCard)

写一个文件在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 booleanintfloatString


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值