文件存储数据使用了Java中的IO操作来进行文件的保存和读取。针对文件的操作主要是以下三种:


1.创建或打开文件



2.读取文件



3.删除文件



创建文件:



1.通过Context.openFileOutput获取输出流



/*
     * name 打开或创建文件的名称
     * mode 打开或创建文件的模式
     */
    FileOutputStream openFileOutput (String name, int



Tip:创建的存储文件保存在/data/data/<package name>/files文件夹下



2.四种文件保存的模式



Context.MODE_PRIVATE = 0
Context.MODE_WORLD_READABLE = 1 
Context.MODE_WORLD_WRITEABLE = 2
Context.MODE_APPEND = 32768



MODE_PRIVATE 为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下写入的内容会覆盖原文件的内容。



MODE_WORLD_READABLE 表示当前文件可以被其他应用读取。



MODE_WORLD_WRITEABLE 表示当前文件可以被其他应用写入。



MODE_APPEND 检查文件是否存在,存在就往文件追加内容,否则就创建新文件。



Tip:在使用模式时,可以用"+"来选择多种模式,比如openFileOutput(FILENAME, Context.MODE_PRIVATE + MODE_WORLD_READABLE)



android有一套自己的安全模型,当应用程序(.apk)在安装时系统就会分配给他一个userid,当该应用要去访问其他资源比如文件的时候,就需要userid匹配。默认情况下,任何应用创建的文件,sharedpreferences,数据库都应该是私有的



读取文件:



通过Context.openFileInput获取输入流。



/*
     * name 打开或创建文件的名称
     */
    FileInputStream openFileInput (String name)



删除文件:



/*
     * name 删除文件的名称
     * return 成功返回true,反之false
     */
    boolean






获取文件路径的方法:



getFilesDir()可以获取到"/data/data/<package name>/files"



getCacheDir()可以获取到"/data/data/<package name>/cache"






把文件存入SDCard



1.操作SDCard需要的权限



<!-- 在SDCard中创建与删除文件权限 -->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
 
    <!-- 往SDCard写入数据权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 



 



2.要往SDCard存放文件,程序必须先判断手机是否装有SDCard,并且可以进行读写。可以通过getExternalStorageState ()获得SDCard状态



返回的状态如下:



Environment.MEDIA_BAD_REMOVAL:bad_removal ——Media Remote before Unmount
Environment.MEDIA_CHECKING:checking——Media present(已插入) and being disk-check
Environment.MEDIA_MOUNTED:mounted——Media present and mounted and can be read/write
Environment.MEDIA_MOUNTED_READ_ONLY:mounted_ro——Media present and mounted and can be read
Environment.MEDIA_NOFS:nofs——Media present but filesytem not support
Environment.MEDIA_REMOVED:removed——Media not present
Environment.MEDIA_SHARED:shared——Media present and not mount. and share
Environment.MEDIA_UNMOUNTABLE:unmountable——Media present but can not mount
Environment.MEDIA_UNMOUNTED:unmounted——Media present but not mount



3.获取SDCard目录



/*
     * return SDCard的目录File
     */
    File getExternalStorageDirectory ()