Android文件存储

看下网上随处可以搜到的文件存储套路

if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){        cacheDir=mContext.getExternalCacheDir().getPath();      }else {        cacheDir=mContext.getCacheDir().getPath();      } fileOutputStream=new FileOutputStream(cacheDir+"/"+url);

这段代码肯定没有错误,但欺骗了多少年少的开发者。

当你这样存储文件的时候就会报,该文件不存在,你开始想这个路径是我获取的,又不是我写的,怎么会不存在,但获取仅仅是逻辑上的存在,而不代表真实存在,所以我们必须要在这个文件不存在的时候,去创建它的文件夹,并创建这个文件 ,所以标准写法应该是

private void initFile() {    if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){      cacheDir=mContext.getExternalCacheDir().getPath();      Log.d(TAG,"have SD");    }else {      cacheDir=mContext.getCacheDir().getPath();      Log.d(TAG," not have SD");    }    Log.d(TAG,cacheDir);    File file=new File(cacheDir);    if(!file.exists()) {      Log.d(TAG, "file no exists");      file.mkdirs();    }  }

这样的话,如果那个文件夹不存在的话,就去创建它,并且是递归创建,这个问题就完美解决了。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多相关文章

  1. Android中的资源文件
  2. 安卓添加全局字体tff
  3. Android(安卓)zip文件压缩解压缩
  4. android读取ini文件
  5. Android(安卓)安装步骤
  6. Android(安卓)使用MediaPlayer播放assets目录的音频文件
  7. Android下载文件保存到路径
  8. Android中FTP上传、下载
  9. NPM 和webpack 的基础使用

随机推荐

  1. android开发中build.gradle文件详解
  2. Android基础入门教程——3.3 Handler消息
  3. android performClick使用
  4. android表单上传出现java.lang.NoClassDe
  5. Android AES加密实现
  6. Android Activity 设置 窗口大小
  7. android 数据库 SQLiteOpenHelper和Conte
  8. 【翻译】(17)SYSV IPC
  9. android 音乐播放器汇总
  10. Android压缩图片和libjpeg库