默认本工程创建的文件本工程对其有读写权限。

我们可以通过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中的文件权限操作的更多相关文章

  1. android中的文件(图片)上传

    android中的文件(图片)上传其实没什么复杂的,主要是对 multipart/form-data 协议要有所了解. 关于 multipart/form-data 协议,在 RFC文档中有详细的描述 ...

  2. android中获取root权限的方法以及原理(转)

    一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的“越狱”有一个更深层次的认识. 二. Root 的介绍 1. Root 的目的 可以让我们拥有 ...

  3. Linux学习之CentOS(四)----Linux文件属性、所有者、群组、其他组及文件权限操作简要总结

    Linux文件属性.所有者.群组.其他组及文件权限操作简要总结 首先介绍一个重要的知识点:文件属性控制权限 [root@www ~]# ls -al total 156 drwxr-x--- 4 ro ...

  4. Android中的文件读写总结

    在Android中,文件主要分为两大类,内部存储和外部存储 内部存储的文件是程序私有的,分为普通文件和Cache文件 外部文件也可以是私有的,也可以是共有的,这要根据文件的目录位置来决定 共有文件可以 ...

  5. 在android中读写文件

    在android中读写文件 android中只有一个盘,正斜杠/代表根目录. 我们常见的SDK的位置为:/mnt/sdcard 两种最常见的数据存储方式: 一.内存 二.本地 1.手机内部存储 2.外 ...

  6. linux中的文件权限chmod

    linux中的文件权限chmod ​ 还是GPU集群那点事儿,集群之间磁盘互相挂载,普通用户也可以操作/cu02_nfs./cu04_nfs文件夹,这就牵扯到权限的问题,去google发现所谓的777 ...

  7. android中解析文件的三种方式

    android中解析文件的三种方式     好久没有动手写点东西了,最近在研究android的相关技术,现在就android中解析文件的三种方式做以下总结.其主要有:SAX(Simple API fo ...

  8. Android中获取文件路径的方法总结及对照

    最近在写文件存贮,Android中获取文件路径的方法比较多,所以自己也很混乱.找了好几篇博客,发现了以下的路径归纳,记录一下,以备不时之需 Environment.getDataDirectory() ...

  9. android中的文件操作详解以及内部存储和外部存储(转载)

    原文链接:http://m.blog.csdn.net/article/details?id=17725989 摘要 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安 ...

随机推荐

  1. Mac OX 隐藏文件夹,文件,应用,磁盘的2种方法 hide finder folder, file, application, volume in 2 ways

    经常需要主目录下隐藏一些文件夹之类的, 第一想到的当然就是:在要隐藏的文件夹前面加『.』(leading dot),这个用法当然可以的了 用习惯了Linux/GNU系统的,基本习惯使用这种办法 但是, ...

  2. zabbix监控phpfpm

    php-fpm status详解 pool – fpm池子名称,大多数为wwwprocess manager – 进程管理方式,值:static, dynamic or ondemand. dynam ...

  3. HDU 5934:Bomb(强连通缩点)

    http://acm.hdu.edu.cn/showproblem.php?pid=5934 题意:有N个炸弹,每个炸弹有一个坐标,一个爆炸范围和一个爆炸花费,如果一个炸弹的爆炸范围内有另外的炸弹,那 ...

  4. 【转】java URLConnection从网上下载图片或音乐

    try { //根据String形式创建一个URL对象,   URL url = new URL("http://www.baidu.com");   //实列一个URLconne ...

  5. 【转】MYSQL入门学习之四:MYSQL的数据类型

    转载地址:http://www.2cto.com/database/201212/175536.html 一.整型  www.2cto.com            整数类型是数据库中最基本的数据类型 ...

  6. [团队项目]sprint3 & 团队贡献分。

    希望各组认真准备,拿出最好的阵容最好的状态,展示一学期的学习与工作成果. 各组注意完成sprint3的博客,写上团队贡献分. 将演示PPT(如果有)和代码上传到github. 截止日期:2016.6. ...

  7. 基于SURF特征的图像与视频拼接技术的研究和实现(一)

    基于SURF特征的图像与视频拼接技术的研究和实现(一)      一直有计划研究实时图像拼接,但是直到最近拜读西电2013年张亚娟的<基于SURF特征的图像与视频拼接技术的研究和实现>,条 ...

  8. 测试-关于Unity获取子层级内容的几种接口(Transform FindChild, Component GetComponentInChildren,...)

    测试常用的层级内组件查找接口,但一些需求还是需要扩展 比如按照名称批量查找节点,查找接口对象等 1.Transform - Transform Find(string name) 可以直接根据名称搜索 ...

  9. 2016年11月7日 星期一 --出埃及记 Exodus 19:23

    2016年11月7日 星期一 --出埃及记 Exodus 19:23 Moses said to the LORD, "The people cannot come up Mount Sin ...

  10. hahaha

    [问题描述] 小Q对计算几何有着浓厚的兴趣.他经常对着平面直角坐标系发呆,思考一些有趣的问题.今天,他想到了一个十分有意思的题目: 首先,小Q会在x轴正半轴和y轴正半轴分别挑选n个点.随后,他将轴的点 ...