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环境下的操作并无二致,之所以需要单独讲解是因为安 ...
随机推荐
- win32 treeview
// 1.create treeview DWORD dwStryle = WS_VISIBLE | WS_CHILD | TVS_HASLINES|TVS_SHOWSELALWAYS/*|TVS_L ...
- jQuery的Ajax的跨域请求
今天碰到一个Ajax跨域请求的问题,我把源码down下来,然后在服务器端写了一个http请求的代理(因为服务器端是不存在跨域问题的),说白了就是用BufferedReader写了个IO流,然后读取到目 ...
- Hadoop Balance
一.hadoop balance工具的用法: 启动balance: bin/start-balancer.sh -threshold 5 停止balance: bin/stop-balancer.sh ...
- Codeforces 741B:Arpa's weak amphitheater and Mehrdad's valuable Hoses(01背包+并查集)
http://codeforces.com/contest/741/problem/B 题意:有 n 个人,每个人有一个花费 w[i] 和价值 b[i],给出 m 条边,代表第 i 和 j 个人是一个 ...
- Linux hrtimer分析(2)
http://blog.csdn.net/angle_birds/article/details/17375901 本文介绍Linux2.6.29中,配置高精度模式的hrtimer与未配置高精度模式时 ...
- Distinct<TSource>(IEqualityComparer<TSource> comparer) 根据列名来Distinct
1. DistinctEqualityComparer.cs public class DistinctEqualityComparer<T, V> : IEqualityComparer ...
- Ombrophobic Bovines 分类: POJ 图论 最短路 查找 2015-08-10 20:32 2人阅读 评论(0) 收藏
Ombrophobic Bovines Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16539 Accepted: 3605 ...
- StringBuild,StringFormat," "+" " 三种方法速度测试
测试方式: Stopwatch sw = new Stopwatch(); sw.Start(); string tmp = ""; StringBuilder sb = new ...
- Entity Framework 第三篇 实体特性声明
Entity Framework中对实体的特性声明有着严格的要求 1.实体必须要有主键特性,但是如果实体没有主键特性那怎么办? public int ExecuteSqlCommand(string ...
- bzoj 2818: Gcd GCD(a,b) = 素数
2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1566 Solved: 691[Submit][Status] Descript ...