android向内存卡写入xml文件

本文介绍了如何在Android设备上向SD卡写入XML文件,包括必要的权限设置、XML序列化过程及示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

anrdoid内存卡的使用,增强了手机的内存,给人们带来了很多方便,作为一个android学习者,不能不学习android的内存卡写入方法

详细内容介绍在代码样例里

希望能帮助大家

要写入内存卡,android4.0以上必须获取权限,android4.0以下不用

具体大家可以感受一下

配置文件需要添加

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>//写入权限申请
        <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.xmlser" />

   <uses-library android:name="android.test.runner"
           />

文件样例

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<persons><person id="0">
<age>0</age>
<sex>男</sex>
</person>

</persons>

代码样例

package com.example.xmlser;


import java.io.File;


import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;


import org.xmlpull.v1.XmlSerializer;


import android.os.Environment;
import android.util.Log;
import android.util.Xml;


import com.example.xmlser.domain.Person;


public class xmlSerier {


//本列是想android内存卡写入xml文件,需要用到xml序列化类
//xmlXmlSerializer,这个类是单列设计,只能通过Xml得到
//创建数据源
public List<Person> getPersonList(){
List<Person> list=new ArrayList();
for(int i=0;i<30;i++){
Person per=new Person();
per.setName(""+i);
per.setAge(i);
if(i%2==0){
per.setSex("男");
}else{
per.setSex("女");
}
list.add(per);
}
return list;
};
//写入方法
public void peosonToXml(List<Person> personList){
//获得序列化对象
XmlSerializer xmlSerializer=Xml.newSerializer();


try {
//指定序列化地址和编码
File path=new File(Environment.getExternalStorageDirectory(),"person.xml");
FileOutputStream out= new FileOutputStream(path.toString());

//设置字节输出流,指定字符集
xmlSerializer.setOutput(out, "utf-8");
//设置doucument,开始写入
xmlSerializer.startDocument("utf-8", true);
//指定根节点
xmlSerializer.startTag(null, "persons");
//循环加入person节点
for(Person per:personList){
 xmlSerializer.startTag(null, "person");
 //设置名字
 xmlSerializer.attribute(null, "id", per.getName());
 //设置年龄
 xmlSerializer.startTag(null, "age");
 xmlSerializer.text(String.valueOf(per.getAge()));
 xmlSerializer.endTag(null,"age");
 //设置sex
 xmlSerializer.startTag(null, "sex");
 xmlSerializer.text(String.valueOf(per.getSex()));
 xmlSerializer.endTag(null,"sex");
 
 
 xmlSerializer.endTag(null, "person");

 

}
//结束根节点
xmlSerializer.endTag(null, "persons");
 //结束写入
xmlSerializer.endDocument();
 out.close();

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();

}



}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值