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--
下面实战一下:
首先完成布局
添加按钮事件
public voidclick1(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,如图
然后再生成其他的按钮布局:
相应的代码如下:
packagecom.wuyudong.permission;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importandroid.os.Bundle;importandroid.app.Activity;importandroid.view.View;public class MainActivity extendsActivity {
@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}public voidclick1(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 voidclick2(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 voidclick3(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 voidclick4(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文件
packagecom.wuyudong.other;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.InputStreamReader;importandroid.os.Bundle;importandroid.app.Activity;importandroid.view.Menu;importandroid.view.View;importandroid.widget.Toast;public class MainActivity extendsActivity {
@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}public voidclick(View v) {
File file= new File("data/data/com.wuyudong.permission/files/info3.txt");try{
FileInputStream fis= newFileInputStream(file);//把字节流转换成字符流
BufferedReader br = new BufferedReader(newInputStreamReader(fis));
String text=br.readLine();
Toast.makeText(this, text, 0).show();
}catch(Exception e) {//TODO Auto-generated catch block
e.printStackTrace();
}
}
}