设置文件生成的权限:
- public static boolean saveInfo(
- Context context, String userName, String userPass, int mode){
- try {
- FileOutputStream fos;
- switch (mode) {
- case 0:
- fos = context.openFileOutput(
- "private.txt", Context.MODE_PRIVATE);
- fos.write((userName+"##"+userPass).getBytes());
- fos.close();
- break;
- case 1:
- fos = context.openFileOutput(
- "readable.txt", Context.MODE_WORLD_READABLE);
- fos.write((userName+"##"+userPass).getBytes());
- fos.close();
- break;
- case 2:
- fos = context.openFileOutput(
- "writeable.txt", Context.MODE_WORLD_WRITEABLE);
- fos.write((userName+"##"+userPass).getBytes());
- fos.close();
- break;
- case 3:
- fos = context.openFileOutput(
- "public.txt", Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);
- fos.write((userName+"##"+userPass).getBytes());
- fos.close();
- break;
- default:
- break;
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
Context.MODE_PRIVATE 私有的文件,只可以程序本身读取和修改
Context.MODE_WORLD_READABLE可读文件,外部程序可以阅读不可以修改
Context.MODE_WORLD_WRITEABLE可写文件,外部程序可以修改不可以读取
Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE外部程序可读可写
下面是读取文件和写入文件的程序代码:
读取文件:
- public void readInfo(View view){
- File file = new File("/data/data/com.aaron.login/files/public.txt");
- FileInputStream fis;
- try {
- fis = new FileInputStream(file);
- BufferedReader br = new BufferedReader(new InputStreamReader(fis));
- String result = br.readLine();
- Toast.makeText(MainActivity.this,
- result,
- Toast.LENGTH_LONG).show();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- Toast.makeText(MainActivity.this,
- "读取文件失败",
- Toast.LENGTH_LONG).show();
- }
- }
写入文件:
- public void writeInfo(View view){
- File file = new File("/data/data/com.aaron.login/files/public.txt");
- FileOutputStream fos;
- try {
- fos = new FileOutputStream(file);
- fos.write("hahaha".getBytes());
- fos.close();
- Toast.makeText(MainActivity.this,
- "写入文件成功",
- Toast.LENGTH_LONG).show();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- Toast.makeText(MainActivity.this,
- "写入文件失败",
- Toast.LENGTH_LONG).show();
- }
- }
File file = new File("/data/data/com.aaron.login/files/public.txt");
同File file = new File(Context.getFileDir(), "public.txt");
若要存储文件到SD卡:File file = new File("/sdcard/info.txt");
android系统是基于linux的系统的,文件权限也是linux系统的形式:
Linux 系统下的文件权限:
位置0代表文件,d代表目录
一般情况下,android下的每一个应用程序都是一个独立的用户,对应一个独立的组
位置1-3当前用户r可读,w可写,x可执行
位置4-6当前用户所在的组r可读,w可写,x可执行
位置7-9其它用户的权限
权限对应的十进制:
- --- --- ---0 000
- rw- --- ---0 600
- rw- rw- rw-0 666
在android的adb中修改文件的权限:
root@android:/data/data/com.aaron.login/files # ls -l
ls -l
-rw-rw---- u0_a46 u0_a46 13 2013-08-08 08:01 private.txt
-rw-rw-rw- u0_a46 u0_a46 6 2013-08-08 09:04 public.txt
-rw-rw-r-- u0_a46 u0_a46 13 2013-08-08 08:01 readable.txt
-rw-rw--w- u0_a46 u0_a46 13 2013-08-08 08:01 writeable.txt
root@android:/data/data/com.aaron.login/files # chmod 0000 private.txt
chmod 0000 private.txt
root@android:/data/data/com.aaron.login/files # ls -l
ls -l
---------- u0_a46 u0_a46 13 2013-08-08 08:01 private.txt
-rw-rw-rw- u0_a46 u0_a46 6 2013-08-08 09:04 public.txt
-rw-rw-r-- u0_a46 u0_a46 13 2013-08-08 08:01 readable.txt
-rw-rw--w- u0_a46 u0_a46 13 2013-08-08 08:01 writeable.txt
chmod:change mode