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();
}
}
}
文件讲解:
Android中的文件权限操作的更多相关文章
- android中的文件(图片)上传
android中的文件(图片)上传其实没什么复杂的,主要是对 multipart/form-data 协议要有所了解. 关于 multipart/form-data 协议,在 RFC文档中有详细的描述 ...
- android中获取root权限的方法以及原理(转)
一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的“越狱”有一个更深层次的认识. 二. Root 的介绍 1. Root 的目的 可以让我们拥有 ...
- Linux学习之CentOS(四)----Linux文件属性、所有者、群组、其他组及文件权限操作简要总结
Linux文件属性.所有者.群组.其他组及文件权限操作简要总结 首先介绍一个重要的知识点:文件属性控制权限 [root@www ~]# ls -al total 156 drwxr-x--- 4 ro ...
- Android中的文件读写总结
在Android中,文件主要分为两大类,内部存储和外部存储 内部存储的文件是程序私有的,分为普通文件和Cache文件 外部文件也可以是私有的,也可以是共有的,这要根据文件的目录位置来决定 共有文件可以 ...
- 在android中读写文件
在android中读写文件 android中只有一个盘,正斜杠/代表根目录. 我们常见的SDK的位置为:/mnt/sdcard 两种最常见的数据存储方式: 一.内存 二.本地 1.手机内部存储 2.外 ...
- linux中的文件权限chmod
linux中的文件权限chmod 还是GPU集群那点事儿,集群之间磁盘互相挂载,普通用户也可以操作/cu02_nfs./cu04_nfs文件夹,这就牵扯到权限的问题,去google发现所谓的777 ...
- android中解析文件的三种方式
android中解析文件的三种方式 好久没有动手写点东西了,最近在研究android的相关技术,现在就android中解析文件的三种方式做以下总结.其主要有:SAX(Simple API fo ...
- Android中获取文件路径的方法总结及对照
最近在写文件存贮,Android中获取文件路径的方法比较多,所以自己也很混乱.找了好几篇博客,发现了以下的路径归纳,记录一下,以备不时之需 Environment.getDataDirectory() ...
- android中的文件操作详解以及内部存储和外部存储(转载)
原文链接:http://m.blog.csdn.net/article/details?id=17725989 摘要 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安 ...
随机推荐
- 4.1HTML和Bootstrap css精华
1.HTML 2.理解Bootstrap HTML元素告诉浏览器,他要表现的是什么类型的内容,当他们不提供任何关于如何显示内容的信息.如何显示内容的信息,由CSS提供. 本书仅包含足够的信息,让你查看 ...
- session 加入redis的实现代码方式
session,中文经常翻译为会话,其本来的含义是 指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session.有时候我们可以看到这样的话&quo ...
- 如何在ecshop商品详情页显示供货商信息
以下范例以ecshop2.7.2原型做为修改: 1.首先需要修改程序文件,将供货商读取出来,然后赋值给模板, 打开文件 /goos.php, 在 $smar ...
- Android实现推送方式解决方案(转)
本文介绍在Android中实现推送方式的基础知识及相关解决方案.推送功能在手机开发中应用的场景是越来起来了,不说别的,就我们手机上的新闻客户端就时不j时的推送过来新的消息,很方便的阅读最新的新闻信息. ...
- html+css复习之第2篇 | javascript
1. java 中定义数组和对象: 数组(Array)字面量 定义一个数组: [40, 100, 1, 5, 25, 10] 对象(Object)字面量 定义一个对象: {firstName:&quo ...
- python8
编译和解释性语言的区别 编译 典型的C C++ 编译完成之后是可执行文件. 机器码-底层(外文书,但是不懂中文,翻译成中文就可以看) 解释性语言----看一句英文书,让翻译解释一句 解释器写的代码便于 ...
- c#读取Excel的列名问题
在修改c#读取Excel的时候,遇到了一些小问题,总结下,希望别人不用再浪费时间 读取excel的时候,如果是空行就不读取? SELECT * FROM [DB_ESTATE$] where F2&l ...
- 20151124001 关闭C#主窗体弹出是否关闭对话框
关闭C#主窗体弹出是否关闭对话框 private void Frm_Main_FormClosing(object sender, FormClosingEventArgs e) { ...
- IP Address 分类: POJ 2015-06-12 19:34 12人阅读 评论(0) 收藏
IP Address Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 19125 Accepted: 11053 Desc ...
- Obj格式解析以及在Unity3D下导入测试
目前基本实现了导入,注意只能打开含有单个模型的obj文件 四边面模型: 全三角面模型(测试单一材质,自动分了下UV): 这里介绍下obj格式: obj格式是waveFront推出的一种3D模型格式,可 ...