Android中文件访问权限
Android中文件访问权限 为什么需要文件访问权限控制? 如果对于一个银行应用,其他的应用可以访问银行应用的数据那将是危险的,所以采用文件权限控制,每一个应用程序都分配一个单独用户的 私有文件,其他程序默认是不能访问的。
|
运行结果:
|
/**
* 文件权限保存操作
*
*/
public class UserInfoService {
/**
* 1、以MODE_PRIVATE模式保存用户名和密码到文件到用户程序数据目录中
* @param context 上下文
* @param username 用户名
* @param password 密码
* @return 保存成功返回true,反之反复false。
*/
public static boolean saveUserInfoPrivate(Context context,String username,String password){
try {
FileOutputStream fos = context.openFileOutput("private.txt", Context.MODE_PRIVATE);
//hacket~~123456
fos.write((username+"~~"+password).getBytes());
fos.close();
return true;
} catch (FileNotFoundException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
/**
* 2、以MODE_APPEND模式保存用户名和密码到文件到用户程序数据目录中
* @param context 上下文
* @param username 用户名
* @param password 密码
* @return 保存成功返回true,反之反复false。
*/
public static boolean saveUserInfoAppend(Context context,String username,String password){
try {
FileOutputStream fos = context.openFileOutput("append.txt",
Context.MODE_APPEND);
//hacket~~123456
fos.write((username+"~~"+password).getBytes());
fos.close();
return true;
} catch (FileNotFoundException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
/**
* 3、以MODE_WORLD_READABLE模式保存用户名和密码到文件到用户程序数据目录中
* @param context 上下文
* @param username 用户名
* @param password 密码
* @return 保存成功返回true,反之反复false。
*/
public static boolean saveUserInfoReadable(Context context,String username,String password){
try {
FileOutputStream fos = context.openFileOutput("readable.txt", Context.MODE_WORLD_READABLE);
//hacket~~123456
fos.write((username+"~~"+password).getBytes());
//Using MODE_WORLD_READABLE when creating files can be risky, review carefully 以只读模式保存用户数据是冒险的,仔细地重新检查
fos.close();
return true;
} catch (FileNotFoundException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
/**
* 4、以MODE_WORLD_WRITEABLE模式保存用户名和密码到文件到用户程序数据目录中
* @param context 上下文
* @param username 用户名
* @param password 密码
* @return 保存成功返回true,反之反复false。
*/
public static boolean saveUserInfoWriteable(Context context,String username,String password){
try {
FileOutputStream fos = context.openFileOutput("writeable.txt", Context.MODE_WORLD_WRITEABLE);
//hacket~~123456
fos.write((username+"~~"+password).getBytes());
fos.close();
return true;
} catch (FileNotFoundException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
} } |
每一个安装的应用程序 默认情况下
操作系统都会给这个应用程序分配一个单独的用户私有的文件,别的应用程序是不可以读取/修改的. |
问题:如果查找id的时候写成下面这样的。那死活也找不到组件,报异常。 // this.rg_modeGroup.findViewById(R.id.rg_saveFileMode);//问题
rg_modeGroup = (RadioGroup) this.findViewById(R.id.rg_saveFileMode); E/AndroidRuntime(1382): java.lang.RuntimeException: Unable to start activity ComponentInfo |