首页 > 代码库 > Android中的文件权限操作
Android中的文件权限操作
默认本工程创建的文件本工程对其有读写权限。
我们可以通过context.openFileOutput("文件名", 模式);
我们可以创建私有, 共有, 只读, 只写文件, 默认的文私有文件。
如果别的Android工程访问本工程的文件的话就会受限制, android的内核是linux, 所以他的文件管理和linux中的文件时一样的。
创建文件代码:
/** * 创建各种文件 * @throws IOException * */ @SuppressLint({ "WorldWriteableFiles", "WorldReadableFiles" }) @SuppressWarnings("resource") private void createFile() throws IOException { Log.i(TAG, "开始创建文件"); FileOutputStream fos; //创建私有文件 fos = this.openFileOutput("private.txt", Context.MODE_PRIVATE); fos.write("private".getBytes()); fos.close(); //创建公有文件 fos = this.openFileOutput("public.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE); fos.write("public".getBytes()); fos.close(); //创建默认文件 File file = new File(this.getFilesDir(), "default.txt"); fos = new FileOutputStream(file); fos.write("default".getBytes()); fos.close(); //创建只读文件 fos = this.openFileOutput("readable.txt", Context.MODE_WORLD_READABLE); fos.write("readable".getBytes()); fos.close(); //创建只写文件 fos = this.openFileOutput("writeable.txt", Context.MODE_WORLD_WRITEABLE); fos.write("writeable".getBytes()); fos.close(); Toast.makeText(this, "文件创建成功", Toast.LENGTH_LONG).show(); Log.i(TAG, "创建文件完成"); }
othera Android工程访问 filespower工程所创建的文件
package com.example.other;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import android.annotation.SuppressLint;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends ActionBarActivity implements OnClickListener{ private String TAG = "MainActivity"; /** 读写私有文件 */ private Button btnWritePrivate, btnReadPrivate; /** 读写共有文件 */ private Button btnWritePublic, btnReadPublic ; /** 读写默认文件 */ private Button btnWriteDefalut, btnReadDefault; /** 读写只读文件 */ private Button btnWriteReadable, btnReadReadable; /** 读写只写文件 */ private Button btnWriteWriteable, btnReadWriteable; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //组件获取 btnWritePrivate = (Button)findViewById(R.id.btn_writePrivate); btnReadPrivate = (Button)findViewById(R.id.btn_readPrivate); btnWritePublic = (Button)findViewById(R.id.btn_writePublic); btnReadPublic = (Button)findViewById(R.id.btn_readPublic); btnWriteDefalut = (Button)findViewById(R.id.btn_writeDefault); btnReadDefault = (Button)findViewById(R.id.btn_readDefault); btnWriteReadable = (Button)findViewById(R.id.btn_writeReadable); btnReadReadable = (Button)findViewById(R.id.btn_readReadable); btnWriteWriteable = (Button)findViewById(R.id.btn_writeWriteable); btnReadWriteable = (Button)findViewById(R.id.btn_readWriteable); //设置监听事件 btnWritePrivate.setOnClickListener(this); btnReadPrivate.setOnClickListener(this); btnWritePublic.setOnClickListener(this); btnReadPublic.setOnClickListener(this); btnWriteDefalut.setOnClickListener(this); btnReadDefault.setOnClickListener(this); btnWriteReadable.setOnClickListener(this); btnReadReadable.setOnClickListener(this); btnWriteWriteable.setOnClickListener(this); btnReadWriteable.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_readPrivate: readFile("private.txt"); break; case R.id.btn_readPublic: readFile("public.txt"); break; case R.id.btn_readDefault: readFile("default.txt"); break; case R.id.btn_readReadable: readFile("readable.txt"); break; case R.id.btn_readWriteable: readFile("writeable.txt"); break; case R.id.btn_writePrivate: writeFile("private.txt"); break; case R.id.btn_writePublic: writeFile("public.txt"); break; case R.id.btn_writeDefault: writeFile("default.txt"); break; case R.id.btn_writeReadable: writeFile("readable.txt"); break; case R.id.btn_writeWriteable: writeFile("writeable.txt"); break; default: break; } } @SuppressLint("SdCardPath") public void readFile(String fileName) { Log.i(TAG, "读文件"+fileName); File file = new File("/data/data/com.example.filepower/files/"+fileName); try { @SuppressWarnings("resource") BufferedReader br = new BufferedReader(new FileReader(file)); String context = br.readLine(); Toast.makeText(this, context, Toast.LENGTH_SHORT).show(); } catch (Exception e) { Toast.makeText(this, "读取失败", Toast.LENGTH_SHORT).show(); } } @SuppressLint("SdCardPath") @SuppressWarnings("resource") public void writeFile(String fileName) { Log.i(TAG, "写文件"+fileName); File file = new File("/data/data/com.example.filepower/files/", fileName); try { FileOutputStream fos = new FileOutputStream(file); fos.write("xxx".getBytes()); } catch (Exception e) { Toast.makeText(this, "写文件失败", Toast.LENGTH_SHORT).show(); } }}
文件讲解:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。