欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

安卓开发:文件权限

程序员文章站 2022-03-27 15:21:59
简单做一个界面,生成四个按钮按四种权限新建文件: 效果图: 点击事件: 点击完四个按钮: 这里最后一列就是Linux中的文件权限: Linux中用10位表示文件权限: 从左往右依次: 第一位表示文件的类型 2-4位表示当前用户 5-7位表示当前用户所在组 最后三位表示其他用户 可以看出:四个文件对当 ......

简单做一个界面,生成四个按钮按四种权限新建文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="click1"
        android:text="私有文件" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="click2"
        android:text="可追加文件" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="click3"
        android:text="可读文件" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="click4"
        android:text="可写文件" />

</LinearLayout>

效果图:

安卓开发:文件权限

 

点击事件:

package com.dreamtech.file;

import java.io.FileOutputStream;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

    // 生成一个私有文件
    public void click1(View v) {
        try {
            FileOutputStream fos = openFileOutput("private.txt", MODE_PRIVATE);
            fos.write("private".getBytes());
            fos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    // 生成一个可追加的文件
    public void click2(View v) {
        try {
            FileOutputStream fos = openFileOutput("append.txt", MODE_APPEND);
            fos.write("append".getBytes());
            fos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    // 生成一个只读的文件
    public void click3(View v) {
        try {
            FileOutputStream fos = openFileOutput("read.txt",
                    MODE_WORLD_READABLE);
            fos.write("read".getBytes());
            fos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    // 生成一个可写的文件
    public void click4(View v) {
        try {
            FileOutputStream fos = openFileOutput("write.txt",
                    MODE_WORLD_WRITEABLE);
            fos.write("write".getBytes());
            fos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

点击完四个按钮:

安卓开发:文件权限

 

这里最后一列就是Linux中的文件权限:

 

Linux中用10位表示文件权限:

从左往右依次:

第一位表示文件的类型

2-4位表示当前用户

5-7位表示当前用户所在组

最后三位表示其他用户

 

可以看出:四个文件对当前用户和当前用户组都是可读可写,其他用户的权限不一致

(这里本质是二进制:1表示r或者w,0表示-)

 

另外:可追加和其他权限区别:追加不清除以前的内容,在后边追加

 

 

那么可以修改文件权限吗?

可以,需要Linux指令

打开adb shell

cd到文件目录

chmod 777 private.txt

777即可修改为可读可写可执行

开发中通常不会修改文件权限