android中读写文件分两部分。

1.手机flash读写 这个属于app的独立权限,即每个app默认只能读写自己文件夹下的文件.默认路径为/data/data/your_project/files/

2.sdcard读写 默认android系统对每个app都开放读写功能。默认路径为/mnt/sdcard/ 或者/sdcard/
写外部存储即sdcard的权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

打开关闭sdcard的权限<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>

1.手机flash读写相关API

存储文件 :
FileOutputStream outStream=this.openFileOutput("zhzhg.txt",Context.MODE_PRIVATE);
outStream.write("文件的读写",getBytes());
outStream.close();
读取文件:
FileInputStream inStream=this.getContext().openFileInput("zhzhg.txt");

----------------------------------------------------------------------
使用绝对路径打开文件:
File file = new File("/data/data/cn.zhzhg.action/files/zhzhg.txt");
FileInputStream inStream = new FileInputStream(file);
Log.i("FileTest", readInStream(inStream));
注意:上面文件路径中的“cn.zhzhg.action”为应用所在包,当你在编写代码时应替换为你自己应用使用的包。
----------------------------------------------------------------------
读取文件的方:
public static String readInStream(FileInputStream inStream){
try {
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length = -1;
while((length = inStream.read(buffer)) != -1 ){
outStream.write(buffer, 0, length);
}
outStream.close();
inStream.close();
return outStream.toString();
} catch (IOException e){
Log.i("FileTest", e.getMessage());
}
return null;
}
Activity还提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用于获取/data/data/<package name>/cache目录
getFilesDir()方法用于获取/data/data/<package name>/files目录

2.sdcard读写相关API

获取SDCard的状态:Environment.getExtemalStorageState()
EnvironmentMEDIA_MOUNTED手机 装有SDCard,并且可以进行读写
获取SDCard的目录:Environment.getExtemalStorageDirectory()
File saveFile=new File("/sdcard/zhzhg.txt");
或:File sdCardDir=new File("/sdcard");//获取SD卡目录
File saveFile-new File(sdCardDir,"zhzhg.txt");
FileOutputStream outStream = new FileOutputStream(saveFile);
outStream.write("文件的读写".getBytes());
outStream.close();

sdcard文件详细操作 http://zhuyonghui116.blog.hexun.com/56778119_d.html

可以看出owner是system,你只要在sdcard_rw组的话就可以读写

一般你的程序要写sd的话需要申请如下权限
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_rw" />
</permission>

在sdcard中创建/删除文件的权限用android.permission.MOUNT_UNMOUNT_FILESYSTEMS
往sdcard中写入数据权限为android.permission.WRITE_EXTERNAL_STORAGE
gid好像可以不用写在xml中也可以。你申请者权限,执行的时候你就在相应的group中了。

你看到的权限主要是限制system用户对sdcard的读写。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/cocodehouse/archive/2010/10/29/5974288.aspx

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. 读取android手机流量信息
  4. android 使用html5作布局文件: webview跟javascript交互
  5. 《Android开发从零开始》——25.数据存储(4)
  6. Android(安卓)多媒体扫描过程(Android(安卓)Media Scanner Proces
  7. android“设置”里的版本号
  8. Android开发环境搭建
  9. Android(安卓)Resource介绍和使用

随机推荐

  1. Android(安卓)好用的三方选择器 时间选择
  2. (六)Android开发进阶(转)
  3. Android中Bitmap按比例放大
  4. android的 各种权限,有个印象就好
  5. Android(安卓)判断应用是否在运行以及判
  6. Android性能优化一些方法
  7. 看完《第一行代码》再看什么书可以进一步
  8. android — JNI注册方法说明
  9. Android(安卓)Input(一)-相关模块初始化
  10. Android(安卓)UI (include的使用)