Android文件操作总结

Android中文件存储按照存放位置分为两类:保存在手机中的和保存在sd卡中的(这里说的sd卡可以是外置的,也可以是内置不可取出的)

存储在手机
    -->存储比较小的关键数据文件
    -->存储在 /data/data/<package name>/files/ 文件夹下
    -->通过两种方式进行读写
    方式一
    //打开在/data/data/<package name>/files/文件夹下文件的输出流和输入流
    //fileName不能包含路径
    FileOutputStream Context.openFileOutput(String fileName, mode)
    FileInputStream Context.openFileInput(String fileName)
    mode: 
        Context.MODE_PRIVATE 只能本应用使用,覆盖
        Context.MODE_APPEND 只能本应用使用,追加
        Context.MODE_WORLD_READABLE 可以被其他应用读取
        Context.MODE_WORLD_WRITEABLE 可以被其他应用写出
        Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE 可以被其他应用读取和写出

    方式二
    //得到目录绝对路径
    String Context.getFilesDir() -->得到 /data/data/<package name>/files/ 目录
    String Context.getCacheDir() -->得到 /data/data/<package name>/caches/ 目录
    //查找、新建文件
    例如:File f = new File(getFilesDir(), "filename");

存储在内存卡
    -->存储比较大量的资源文件
    重要方法:
        String Environment.getExternalStorageState() --> 得到sdcard的状态,挂载状态为Environment.MEDIA_MOUNTED
        File Environment.getExternalStorageDirectory() --> 得到sdcard根目录
        File Context.getExternalFilesDir(String type) --> 得到sdcard中专属于此应用的根目录(/<sdcard>/Android/<package name>/)或者其子目录
        type为null时为此根目录,type为 Environment.DIRECTORY_MUSIC, Environment.DIRECTORY_PODCASTS, Environment.DIRECTORY_RINGTONES, Environment.DIRECTORY_ALARMS, Environment.DIRECTORY_NOTIFICATIONS, Environment.DIRECTORY_PICTURES, Environment.DIRECTORY_MOVIES时分别为根目录下对应的子目录

    一般流程:
    //在AndroidManifest文件中引入权限
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    //判断是否有sdCard挂载到手机
    if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
        //取得scCard中需要新建文件的目录
        File dir = Environment.getExternalStorageDirectory();
        //File dir = getApplicationContext().getExternalFilesDir(null);
        //File dir = getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_PICTURES);

        //在sdCard根目录下查找/新建文件
        File file = new File(dir, "file_name");

        //对文件进行操作
        //...    
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值