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,通過可視化工具添加,或手動添加都可以。