文件访问权限详解(eclipse和studio如何访问虚拟机内部的存储内容)

来源:互联网 发布:江西省软件行业办 编辑:程序博客网 时间:2024/06/06 06:40

1、android的文件访问权限和Linux的访问权限是一样的,记住一个即记住另一个

2、android应用中,每一个应用,都是一个独立的用户!android的文件访问权限总共为10个字母;

              一个文件创建出来后,后方都有表示其权限的几个字母  比如 drw-rw----     -rw-------    --------

              drwxrwxrwx   d表示文件类,r:read 权限   w:write权限   e:execute权限

三个连接着的rwx   1、第一个表示文件的拥有者ownner(谁创建的这个文件)

                                        2、   第二个rwx,表示根据文件拥有者属于同一个用户组对文件的权限

                                        3、   第三个rwx表示其它用户对文件的权限

  以上两篇都是普通IO流创建的文件, 其默认是第一个文件拥有者的权限,是私有模式(-rw-------),只提供自己读写!

3、安卓提供专门的输出流API    OpenFileOutputStream(String string, MODE)(直接返回输出流)

                            FileOutputStream fos=OpenFileOutputStream("info1.txt",MODE);

MODE 提供好几个值:

   MODE_PRIVATE    :该文件只能被当前程序读写,一般是实际开发中用的最多的模式;-rw-rw----

   MODE_APPEND      该模式与PRIVATE模式基本一致,追加读写,覆盖之前写的;-rw-rw----

   MODE_WORLD_READABLE       该文件的内容可以被其它程序读取;-rw-rw--r--

   MODE_WORLD_WRITEABLE       该文件的内容可由其它应用程序读写;-rw-rw-rw-

  studio访问sd卡或者手机内部存储  ,点击?号左边的小黄人,进去后,可以看到几列,其中有一列是File Exployer

   eclipse,点击Window --showView--other--File Exployer

实现代码1 :写文件,记得文件名虽然是小写,记得为.txt的后缀:

   

public void click1(View view) {    try {        FileOutputStream fos=openFileOutput("info1.txt",MODE_PRIVATE);        String name="working harder";        fos.write(name.getBytes());        fos.close();    } catch (Exception e) {        e.printStackTrace();    }}public void click2(View view) {    try {        FileOutputStream fos=openFileOutput("info2.txt",MODE_WORLD_READABLE);        String name="working harder";        fos.write(name.getBytes());        fos.close();    } catch (Exception e) {        e.printStackTrace();    }}//假设这是另一个应用中的buttonpublic void click3(View view) {    try {        FileOutputStream fos=openFileOutput("info3.txt",MODE_WORLD_WRITEABLE);        String name="working harder";        fos.write(name.getBytes());        fos.close();    } catch (Exception e) {        e.printStackTrace();    }}
实现代码2:读文件,文件名为data/data/pakage/info3.txt
 
public void click(View view){    try {        File file=new File("data/data/detectsdcardrom.workharder.com.readWriteInFile/files/info3.txt");        FileInputStream inputStream=new FileInputStream(file);        BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));        String name1=bufferedReader.readLine();        Toast.makeText(this, name1, Toast.LENGTH_SHORT).show();    } catch (Exception e) {        e.printStackTrace();    }}

0 0
原创粉丝点击