1、获取sd卡目录 判断sd卡是否可用
使用上下文Context获取sd卡的目录
[1]通过上下文直接获取sd卡的目录
String path = getExternalFilesDir(null).getPath();
2、SharedPreferences的使用
[1]使用SharedPreferences写入数据到xml文件
/* [1]判断复选框是否选中*/
if(saveState.isChecked()){
/*[2]选中的情况下,获取内容*/
String s = username.getText().toString();
String s1 = password.getText().toString();
/*[3]获取SharedPreferences实例,名字不要带后缀,会自动加上.xml*/
SharedPreferences sharedPreferences = getSharedPreferences("info", MODE_PRIVATE);
/*[4]获取编辑器*/
SharedPreferences.Editor edit = sharedPreferences.edit();
/*[5]写入内容*/
edit.putString("username",s);
edit.putString("password",s1);
edit.putBoolean("saveState",true);
/*[6]提交数据*/
edit.commit();
[2]需要在AndroidManifest.xml文档中配置权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
[2]从xml中读取
boolean save_state = s.getBoolean("saveState", false);
if(save_state){
/* [1]获取数据*/
String usernameText = s.getString("username", null);
String passwordText = s.getString("password", null);
/*[2]设置数据*/
username.setText(usernameText);
password.setText(passwordText);
saveState.setChecked(true);
Toast.makeText(this,"读取成功",Toast.LENGTH_SHORT).show();
}
SharedPreferences用与保存一些键值对数据,特别是对
配置信息的读写,非常方便
3、生成xml的方式
[1]方法一:直接使用StringBuffer进行拼接(不推荐)
[2]方法二:使用android提供的序列化器进行写入 XmlSerializer
/*[1]通过Xml类得到Serializer类的实例*/
XmlSerializer xmlSerializer = Xml.newSerializer();
/*[2]设置输出参数*/
File file = new File(getExternalFilesDir(null).getPath(),"info.xml");
Log.d("filePath",file.getAbsolutePath());
xmlSerializer.setOutput(new FileOutputStream(file),"utf-8");
/*[3]开始写文档*/
xmlSerializer.startDocument("utf-8",true);
/* [4]开始写标签*/
xmlSerializer.startTag(null,"sms");
/* [5]写入标签属性*/
xmlSerializer.attribute(null,"id","test");
/*[6]写入数据*/
xmlSerializer.text("hahah");
/*[7]结束标签的编写*/
xmlSerializer.endTag(null,"sms");
/*[]结束文档的编写*/
xmlSerializer.endDocument();
getExternalFilesDir
(
null
).
getPath
(),这个路径是/storage/emulated/legacy/Android/data/com.xmlserializerdemo/files/,并不在data/dataz下面
4、xml解析
使用XmlPullParser进行解析
File file = new File(getExternalFilesDir(null).getPath(),"info.xml");
if(file.exists()){
/*[1]获取XmlPullParser实例*/
XmlPullParser xmlPullParser = Xml.newPullParser();
int eventType = 0;
try {
/*[2]设置输入流及编码*/
xmlPullParser.setInput(new FileInputStream(file),"utf-8");
/*[3]获取事件类型*/
eventType = xmlPullParser.getEventType();
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
/*[4]对类型进行判断操作*/
while(eventType != XmlPullParser.END_DOCUMENT){
if(eventType == XmlPullParser.START_DOCUMENT){
Log.d("read","START_DOCUMENT");
}else if(eventType == XmlPullParser.END_DOCUMENT){
Log.d("read","END_DOCUMENT");
}else if(eventType == XmlPullParser.START_TAG){
Log.d("read","START_TAG");
}
try {
try {
/*[5]获取下一个eventType*/
eventType = xmlPullParser.next();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
}catch (IOException E){
}
break;