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的读写。
分享到:
相关推荐
Android 读写文件实例,包括 SD 卡读写和 内部存储读写。 文件目录获取等。
Android读写文件,该文件包含Android里的读写txt文件,方便初学者使用同时欢迎大家交流经验@!
android读写文件例程,在data/data/example.fliedemo/下生成一个abcd.txt文件。
Qt Android 读写文件权限与录制音频权限询问Demo
Android读写配置文件的实例,工程中即包括了读取配置文件,也包括了写入配置文件。非常完整,代码简单清晰
Android - 文件读写操作 方法总结
1.对读写文件操作的练习 2.对SQLite读写数据库的操作练习。 3.对ListView的练习 4.代码清楚,层次明了。 android sdk 2.3.*
1.读写文件功能 2.读写数据库功能 3.ListView练习 层次清楚,请大家使用!
在android开发中,我们经常用到文件的读写权限
delphi 格式文本文件的读写。。。。。
原数据存放在StreamingAsset中,首次启动复制到persistentDataPath,以后进行更新和读取都在persistentDataPath中使用File进行文件操作。需要恢复书序的时候从StreamingAsset中获取即可。
Android 基于libaums实现读写U盘文件,相关博客:https://blog.csdn.net/a512337862/article/details/80505128
Android studio 获取内置存储器路径,创建文件夹,读写、删除文件,亲试好用
android 读写文件的工具类,对读写操作进行了封装。
Android应用源码SdCard读写文件实例