import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import android.content.Context;
import android.os.Environment;
public class Fileservice {
/**
* 存储用户密码的方法
*
* @param context
* @param user
* @param psd
*/
public static boolean saveUserInfo(Context context, String user, String psd) {
/*
* SD卡,也就是手机的外部存储设备,将数据保存在SD卡中 SD卡在做写操作的时候,必须给权限,读操作不需要加权限
*/
try {
//TODO---理解Environment中的常量
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
System.out.println("外部存储设备的路径:"
+ Environment.getExternalStorageDirectory());
File file = new File(
Environment.getExternalStorageDirectory(),
"user.txt");
//File file = new File("mnt/sdcard/", "user.txt");这句代码和上面的代码的效果是等价的
// 需要存储的数据
String str = user + "##" + psd;
// 输出流,进行文件的读写操作
FileOutputStream out = new FileOutputStream(file);
out.write(str.getBytes());
out.close();
return true;
} else {
return false;
}
} catch (Exception e) {
return false;
}
}
public static String getUserInfo(Context context) {
try {
//判断sd卡是否已经挂载的状态,如果是挂载的状态就是可读可写
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File file = new File(Environment.getExternalStorageDirectory(), "user.txt");
//下面对文件流操作的方式是一致的
FileInputStream fileInputStream = new FileInputStream(file);
InputStreamReader inputStreamReader=new InputStreamReader(fileInputStream);
BufferedReader reader=new BufferedReader(inputStreamReader);
//BufferedReader的流操作对象,可以读取一行
String str=reader.readLine();
return str;
}else{
return null;
}
} catch (Exception e) {
return null;
}
}
}
注意对sd卡文件的读写的操作,需要添加权限。android.permission.WRITE_EXTERNAL_STORAGE,通过可视化工具添加,或手动添加都可以。