安卓开发:文件权限
程序员文章站
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即可修改为可读可写可执行
开发中通常不会修改文件权限