• Android的读写文件权限


    设置文件生成的权限:

    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();
    		}
    		
    	}


    在DDMS的File Explorer中查看文件的permission:


    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


  • 相关阅读:
    面向对象(静态,抽象,接口)--2017-04-20
    面向对象三大特性(面试经常问)--2017-04-18
    析构函数,函数重载,以及面向对象求面积的例子--2017-04-19
    密码强弱的判断(用正则表达式写)---2017-04-17
    php面向对象(一)---2017-04-17
    php数组--2017-04-16
    正则表达式 详解---2017-04-16
    JavaScript BOM 遗漏知识再整理;弹窗和记时事件;
    JavaScript HTML DOM---遗漏知识再整理(向html添加/删除元素,改变内容和css)
    bootstrap部分---网格系统;(几天没写博客了,为了潜心研究一下bootstrap)
  • 原文地址:https://www.cnblogs.com/riskyer/p/3246859.html
Copyright © 2020-2023  润新知