Android开发中,有时分咱们需求对信息进行保存,那么今日就来介绍一下,保存文件到内存,以及SD卡的一些操作,及办法,供参阅。
第一种,保存数据到内存中:
//java开发中的保存数据的办法
public static boolean saveUserInfo(String username,String password){
File file = new File(/data/data/com.ftf.login/info.txt);
try {
FileOutputStream fos = new FileOutputStream(file);
// ftf##123
fos.write((username+##+password).getBytes());
fos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
return true;
}
//Android开发中,保存数据的办法,咱们传递一个context目标,这样就能够较为直接的把数据保存到程序在手机体系中的独自的文件夹,契合Android的开发标准,
public static boolean saveUserInfo(Context context,String username,String password){
try {
File filesDir = context.getFilesDir();
File file = new File(filesDir,info.txt);
FileOutputStream fos = new FileOutputStream(file);
// ftf##123
fos.write((username+##+password).getBytes());
fos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
return true;
}
/*
* 获取保存的数据
*/
public static Map
File filesDir = context.getFilesDir();
File file = new File(filesDir,info.txt);
try {
FileInputStream fis = new FileInputStream(file);
//运用buffer,
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String str = br.readLine();
String[] infos = str.split(##);
Map
map.put(username, infos[0]);
map.put(password, infos[1]);
return map;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
第二种,保存数据到SD卡
这时咱们需求用到Environment,来较为便利的获取SD卡的目录,这时随意一般情况下,SD卡是在/data/data/sdcard目录下,可是一些国产手机,以及平板中目录组织不是这样的,这样做能够确保程序的兼容性,并且也是Android开发标准引荐。
public static boolean saveUserInfo(Context context,String username,String password){
try {
// File filesDir = context.getFilesDir();
// File file = new File(filesDir,info.txt);
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()));
//获取SD卡的目录
File file = new File(Environment.getExternalStorageDirectory(),info.txt);
FileOutputStream fos = new FileOutputStream(file);
// ftf##123
fos.write((username+##+password).getBytes());
fos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
return true;
}
第三,依照权限,对文件进行存储
这个较为契合Android的开发标准,Android下文件存储有四中类型:PRIVATE,READEABLE,WRITEABLE,READEABLE+WRITEABLE,也即私有,可读,可写,可读可写,咱们在保存文件的时分能够直接进行指定,并且context能够直接翻开一个文件输出流,所以Android下开发保存文件,引荐这种办法。
public static boolean saveUserInfo(Context context,String username,String password,int mode){
try {
//
// File filesDir = context.getFilesDir();
// File file = new File(filesDir,info.txt);
// FileOutputStream fos = new FileOutputStream(file);
//在上下文的环境创立一个文件
FileOutputStream fos = null;
switch (mode) {
case 1:
fos = context.openFileOutput(private.txt, Context.MODE_PRIVATE);
break;
case 2:
fos = context.openFileOutput(readeable.txt, Context.MODE_WORLD_READABLE);
break;
case 3:
fos = context.openFileOutput(writeable.txt, Context.MODE_WORLD_WRITEABLE);
break;
case 4:
fos = context.openFileOutput(public.txt, Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);
break;
}
// ftf##123
fos.write((username+##+password).getBytes());
fos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
return true;
}