首先给大家介绍使用文件如何对数据进行存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。
public class FileActivity extends Activity {
@Override public void onCreate(Bundle savedInstanceState) {
...
FileOutputStream outStream = this.openFileOutput("itcast.txt", Context.MODE_PRIVATE);
outStream.write("传智播客".getBytes());
outStream.close();
}
}
openFileOutput()方法的第一参数用于指定文件名称,不能包含路径分隔符“/” ,如果文件不存在,Android 会自动创建它。创建的文件保存在
/data/data/<package name>/files目录,如: /data/data/cn.itcast.action/files/itcast.txt ,通过点击Eclipse菜单“Window”-“Show View”-“Other”,在对话窗口中展开android文件夹,选择下面的File Explorer视图,然后在File Explorer视图中展开/data/data/<package name>/files目录就可以看到该文件。
openFileOutput()方法的第二参数用于指定操作模式,
有四种模式,分别为:
Context.MODE_PRIVATE = 0
Context.MODE_APPEND = 32768
Context.MODE_WORLD_READABLE = 1
Context.MODE_WORLD_WRITEABLE = 2
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
如果希望文件被其他应用读和写,可以传入:
openFileOutput("itcast.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
android有一套自己的安全模型,当应用程序(.apk)在安装时系统就会分配给他一个userid,当该应用要去访问其他资源比如文件的时候,就需要userid匹配。默认情况下,任何应用创建的文件,sharedpreferences,数据库都应该是私有的(位于/data/data/<package name>/files),其他程序无法访问。除非在创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE ,只有这样其他程序才能正确访问。
如果要打开存放在/data/data/<package name>/files目录应用私有的文件,可以使用Activity提供openFileInput()方法。
FileInputStream inStream = this.getContext().openFileInput("itcast.txt");
Log.i("FileTest", readInStream(inStream));
readInStream()的方法请看本页下面备注。
或者直接使用文件的绝对路径:
File file = new File("/data/data/cn.itcast.action/files/itcast.txt");
FileInputStream inStream = new FileInputStream(file);
Log.i("FileTest", readInStream(inStream));
注意:上面文件路径中的“cn.itcast.action”为应用所在包,当你在编写代码时应替换为你自己应用使用的包。
对于私有文件只能被创建该文件的应用访问,如果希望文件能被其他应用读和写,可以在创建文件时,指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。
Activity还提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用于获取/data/data/<package name>/cache目录
getFilesDir()方法用于获取/data/data/<package name>/files目录
原文:
android文件存储(转)
其他链接:
android 私有文件夹 文件的读入与读取
Android中往手机自带的存储空间写入文件
有的网友说assets下面不能包含大文件?错!
可以通过这样的方法访问到你的大文件
AssetFileDescriptor afd = getAssets().openFd("a.mp3");
player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
分享到:
相关推荐
Android - 文件读写操作 方法总结
在android开发中,我们经常用到文件的读写权限
Android 读写文件实例,包括 SD 卡读写和 内部存储读写。 文件目录获取等。
Android 基于libaums实现读写U盘文件,相关博客:https://blog.csdn.net/a512337862/article/details/80505128
Android读写配置文件的实例,工程中即包括了读取配置文件,也包括了写入配置文件。非常完整,代码简单清晰
android 应用\文件读写android 应用\文件读写android 应用\文件读写android 应用\文件读写android 应用\文件读写android 应用\文件读写android 应用\文件读写android 应用\文件读写
Android 13 之后,手机读写权限变更,针对小米14,txt 文件读写测试案例
Android 读写SD中存储的文件!
android文件读写源码 可以写文档,然后保存文件到手机中也可以保存的sd卡中,可以设置文档的读写等访问权限
android 通过Environment环境 获取手机根目录 读写 文件操作。
实时检测USB的插入,检测并读取文件,也可根据路径进行文件读写操作
android 读写文件的工具类,对读写操作进行了封装。
Android文件读写操作总结
Android SD卡文件读写操作可以学习下
Android studio 获取内置存储器路径,创建文件夹,读写、删除文件,亲试好用
如何读写Android文件 如何读写Android文件
Android jni文件读写 NDK文件读取 读写 操作 NDK数据加密DEMO 源码直接上传,运行在android6.0系统测试通过
android开发实例-sdcard文件读写 WIFI检测、下载文件等 开发环境:JAVA SDK1.7及android最新的开发包
Android应用源码SdCard读写文件实例
android文件的创建、删除、 读写、 判断是否操作、文件MD5 java基础学习型