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

Android 访问文件权限的四种模式介绍

程序员文章站 2024-03-03 23:49:28
linux文件的访问权限 * 在android中,每一个应用是一个独立的用户 * drwxrwxrwx * 第1位:d表示文件夹,-表示文件 * 第2-4位:r...

linux文件的访问权限

* 在android中,每一个应用是一个独立的用户
* drwxrwxrwx
* 第1位:d表示文件夹,-表示文件
* 第2-4位:rwx,表示这个文件的拥有者(创建这个文件的应用)用户对该文件的权限
* r:读
* w:写
* x:执行

* 第5-7位:rwx,表示跟文件拥有者用户同组的用户对该文件的权限

* 第8-10位:rwx,表示其他用户组的用户对该文件的权限

openfileoutput的四种模式

* mode_private:-rw-rw----

* mode_append:-rw-rw----

* mode_world_writeable:-rw-rw--w-

* mode_world_readable:-rw-rw-r--

下面实战一下:

首先完成布局

<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"
android:paddingbottom="@dimen/activity_vertical_margin"
android:paddingleft="@dimen/activity_horizontal_margin"
android:paddingright="@dimen/activity_horizontal_margin"
android:paddingtop="@dimen/activity_vertical_margin"
tools:context=".mainactivity" >
<button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="按钮1"
android:onclick="click1" />
</linearlayout>

Android 访问文件权限的四种模式介绍

添加按钮事件

public void click1(view v) {
//data/data/com.wuyudong.permission.files
try {
fileoutputstream fos = openfileoutput("info1.txt", mode_private);
fos.write("私有模式".getbytes());
fos.close();
} catch (exception e) {
// todo auto-generated catch block
e.printstacktrace();
}
}

点击按钮后生成相应的文件info1.txt,如图

Android 访问文件权限的四种模式介绍

然后再生成其他的按钮布局:

Android 访问文件权限的四种模式介绍

相应的代码如下:

package com.wuyudong.permission;
import java.io.filenotfoundexception;
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) {
// data/data/com.wuyudong.permission.files
try {
fileoutputstream fos = openfileoutput("info1.txt", mode_private);
fos.write("私有模式".getbytes());
fos.close();
} catch (exception e) {
// todo auto-generated catch block
e.printstacktrace();
}
}
public void click2(view v) {
// data/data/com.wuyudong.permission.files
try {
fileoutputstream fos = openfileoutput("info2.txt", mode_append);
fos.write("追加模式".getbytes());
fos.close();
} catch (exception e) {
// todo auto-generated catch block
e.printstacktrace();
}
}
public void click3(view v) {
// data/data/com.wuyudong.permission.files
try {
fileoutputstream fos = openfileoutput("info3.txt", mode_world_readable);
fos.write("全局可读模式".getbytes());
fos.close();
} catch (exception e) {
// todo auto-generated catch block
e.printstacktrace();
}
}
public void click4(view v) {
// data/data/com.wuyudong.permission.files
try {
fileoutputstream fos = openfileoutput("info4.txt", mode_world_writeable);
fos.write("私有模式".getbytes());
fos.close();
} catch (exception e) {
// todo auto-generated catch block
e.printstacktrace();
}
}
}

依次点击按钮,生成相应权限的文件:

Android 访问文件权限的四种模式介绍

再创建一个应用来读取之前生成的info3.txt文件

package com.wuyudong.other;
import java.io.bufferedreader;
import java.io.file;
import java.io.fileinputstream;
import java.io.filenotfoundexception;
import java.io.inputstreamreader;
import android.os.bundle;
import android.app.activity;
import android.view.menu;
import android.view.view;
import android.widget.toast;
public class mainactivity extends activity {
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
}
public void click(view v) {
file file = new file("data/data/com.wuyudong.permission/files/info3.txt");
try {
fileinputstream fis = new fileinputstream(file);
//把字节流转换成字符流
bufferedreader br = new bufferedreader(new inputstreamreader(fis));
string text = br.readline();
toast.maketext(this, text, 0).show();
} catch (exception e) {
// todo auto-generated catch block
e.printstacktrace();
}
}
}

以上所述是小编给大家介绍的android 访问文件权限的四种模式的相关内容,希望对大家有所帮助,如果大家想了解更多内容敬请关注网站!