使用文件进行数据存储
Context.MODE_PRIVATE:为默认操作,代表该文件是私有数据,只能被本应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把写入的内容追加到原文件中。可以使用Context.MODE_APPEND
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。访问权限和上一个模式一样
Context.MODE_WORLE_READABLE和Context.MODE_WRITEBLE用来控制其他应用是否有权限读写该文件。
MODE_WORLE_READABLE:表示当前文件可以被其他应用读取;
MODE_WORLE_WRITEABLE:表示当前文件可以被其他应用写入。
如果希望文件可以被其他应用读和写,可以传入:
OpenFileOutput(“it.txt”,Context.MODE_WORLE_READABLE+Context.MODE_WRITEBLE);
保存文件部分代码示例:publicclassFileService {
private Context context;
public FileService(Contextcontext) {
this.context =context;
}
publicvoidsave(String filename, String content) throwsIOException{
// 私有操作模式:创建出来的文件只能被本应用访问,其它应用无法访问该文件,另外采用私有操作模式创建的文件,
// 写入文件中的内容会覆盖原文件的内容
FileOutputStream outStream = context.openFileOutput(filename,Context.MODE_PRIVATE);
outStream.write(content.getBytes());
outStream.close();
}
注意:openFileOutput这个API,是默认把文件保存在内部存储的data/data上的
向SDCard保存文件,
public voidsaveToSDCard(String filename, String content)throws Exception {
//新建一个文件对象
File file = new
//获取SDCard的路径File(Environment.getExternalStorageDirectory(),filename);
FileOutputStream outStream = newFileOutputStream(file);
outStream.write(content.getBytes());
outStream.close();
}
注意记得要:
1.在清单文件中添加权限。
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</manifest>
2.判断SDCard是否存在,并且可以读写 if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))