当前位置: 移动技术网 > IT编程>移动开发>Android > Android 访问文件权限的四种模式介绍

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

2019年07月24日  | 移动技术网IT编程  | 我要评论

境外自驾游,走向复兴伴奏,堕天使公主传说

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>

添加按钮事件

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,如图


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


相应的代码如下:

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

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


再创建一个应用来读取之前生成的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 访问文件权限的四种模式的相关内容,希望对大家有所帮助,如果大家想了解更多内容敬请关注移动技术网网站!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网