4种文件操作模式
Context.MODE_PRIVATE 默认的操作模式,代表文件是私有数据 ,只能被应用自身访问,默认以覆盖的方式写入新内容。
Context.MODE_APPEND 以追加的方式写入新内容,只能被应用自身访问。
MODE_WORLD_READABLE 当前文件可被其他应用读(只能读不能写)。
MODE_WORLD_WRITEABLE 当前文件可被其他文件写(只能写不能读)。
如果希望文件被其他应用读和写,可以传入:
openFileOutput("filename",Context.MODE_WORLD_READABLE +Context.MODE_WORLD_WRITEABLE);
如果希望内容以追加方式写入MODE_WORLD_READABLE、MODE_WORLD_WRITEABLE 两种方式的文件中,可以
FileOutputStream outStream = newFileOutputStream(file, true);
在File Explorer中
- r w - r w - - - -
1 2 3 4 5 6 7 8 9 10
1:-代表文件,d代表目录
2,3:r w 代表可被当前应用读/写
4:是否可被运行,-否
5,6,7:同一组的应用是否可以对该文件进行读/写/运行
8,9,10:其他应用是否可以读/写/运行
Activity还提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用于获取/data/data/<packagename>/cache目录
getFilesDir()方法用于获取/data/data/<packagename>/files目录
将文件保存到SD卡中
在程序中访问SDCard,你需要申请访问SDCard的权限。
在AndroidManifest.xml中加入访问SDCard的权限如下:
<!-- 在SDCard中创建与删除文件权限-->
<uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限-->
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
要往SDCard存放文件,程序必须先判断手机是否装有SDCard,并且可以进行读写。
注意:访问SDCard必须在AndroidManifest.xml中加入访问SDCard的权限
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
{
File sdCardDir =Environment.getExternalStorageDirectory();//获取SDCard目录
File saveFile = new File(sdCardDir,“itcast.txt”);
FileOutputStreamoutStream = new FileOutputStream(saveFile);
outStream.write("传智播客".getBytes());
outStream.close();
}
Environment.getExternalStorageState()方法用于获取SDCard的状态,如果手机装有SDCard,并且可以进行读写,那么方法返回的状态等于Environment.MEDIA_MOUNTED。