Android 文件存储及常见问题解决
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(); } }
这样的话,如果那个文件夹不存在的话,就去创建它,并且是递归创建,这个问题就完美解决了。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
android数据存储之文件存储方法
文件存储是 Android 中最基本的一种数据存储方式,它不对存储的内容进行任何的格式化处理,所有数据都是原封不动的保存到文件当中的. 概述 文件存取的核心就是输入流和输出流. Android文件的操作模式 文件的相关操作方法 文件读写的实现 openFileOutput和openFileInput方法 /** * openFIleOutput ,openFileInput * 这两种方法同sp一样只能讲文件保存到手机内存固定的路径中, * 默认为 /data/data/<packageName
-
详解Android数据存储之Android 6.0运行时权限下文件存储的思考
前言: 在我们做App开发的过程中基本上都会用到文件存储,所以文件存储对于我们来说是相当熟悉了,不过自从Android 6.0发布之后,基于运行时权限机制访问外置sdcard是需要动态申请权限,所以以往直接sdcard根目录上直接新建了一个xxx/cache/目录来做文件存储就会不是那么容易控制了,所以有必要重新认识一下Android文件存储的相关知识了. 背景: 有关外置sdcard的读写权限 <uses-permission android:name="android.permissi
-
Android编程之SharedPreferences文件存储操作实例分析
本文实例讲述了Android编程之SharedPreferences文件存储操作的方法.分享给大家供大家参考.具体分析如下: SharedPreferences类提供了一种简单的文件存储功能,像程序的配置文件可以通过它来实现. 源代码: package com.test.sharedpreferences; import android.app.Activity; import android.content.Context; import android.content.SharedPrefe
-
Android实现文件存储并读取的示例代码
要求: 输入文件名,文件内容分别存储在手机内存和外存中,并且都可以读去取出来. 步骤: 1.创建一个名为CDsaveFile的Android项目 2.编写布局文件activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layo
-
详解Android文件存储
摘要 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理.根据我的经验,初学者在这部分感到很容易混淆内部存储和外部存储两个概念. 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理.根据我的经验,初学者在这部分感到很容易混淆内部存储和外部存储两个概念. 相
-
android开发基础教程—文件存储功能实现
文件存储: 复制代码 代码如下: public class MainActivity extends Activity { EditText mname, mage; TextView mtv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mname = (Edit
-
实例详解Android文件存储数据方式
总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.下面通过本文给大家介绍Android文件存储数据方式. 1.文件存储数据使用了Java中的IO操作来进行文件的保存和读取,只不过Android在Context类中封装好了输入流和输出流的获取方法. 创建的存储文件保存在/data/data/<package name>/files文件夹下. 2.操作. 保存文件内容:通过Context.openFileOutput获取输出流,参数分别为文件名和存储模式. 读取文件内容:通
-
Android学习之文件存储读取
前言 相信大家都知道知道,在AndroidOS中,提供了五中数据存储方式,分别是:ContentProvider存储.文件存储.SharedPreference存储.SQLite数据库存储.网络存储.那么这一篇,我们介绍文件存储. 1.Android文件的操作模式 学过Java的同学都知道,我们新建文件,然后就可以写入数据了,但是Android却不一样,因为Android是 基于Linux的,我们在读写文件的时候,还需加上文件的操作模式,Android中的操作模式如下: 2.文件的操作模式 我们
-
Android 文件存储及常见问题解决
Android文件存储 看下网上随处可以搜到的文件存储套路 if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){ cacheDir=mContext.getExternalCacheDir().getPath(); }else { cacheDir=mContext.getCacheDir().getPath(); } fileOutputStream=new FileOutputStream(c
-
Android外部存储无法访问问题解决方法
最近在做Android 应用开发,IDE是android studio , 使用的版本配置如下: compileSdk 32 buildToolsVersion '32.0.0' defaultConfig { applicationId "com.example.gzpersonmanager" minSdk 21 targetSdk 32 versionCode 1 versionName "1.0" testInstrumentationRunner &quo
-
浅析Android文件存储
一.内部存储 内部存储,位于data/data/包名/路径下 是否需要用户权限:否 是否能被其他应用访问:否 卸载应用数据是否被删除:是 内部存储控件不需要用户权限,这意味着我们不需要用户去授权下面的权限: android.permission.WRITE_EXTERNAL_STORAGE android.permission.READ_EXTERNAL_STORAGE 对于设备中每一个安装的 App,系统都会在 data/data 目录下以应用程序包名自动创建与之对应的文件夹,可以直接读写该目
-
Android 文件存储与SharedPreferences存储方式详解用法
目录 持久化技术简介 文件存储 1. 将数据存储到文件中 2. 从文件中读取数据 SharedPreferences 存储 1. 将数据存储到 SharedPreferences 中 2. 从 SharedPreferences 中读取数据 持久化技术简介 数据持久化就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或计算机关机的情况下,这些数据也不会丢失.保存在内存中的数据是处于瞬时状态的,而保存在存储设备的数据是处于持久状态的.持久化技术提供了一种机制,可以让数据在瞬时状态和持久状
-
android文件存储和SharedPreferences存储的项目实例
该实例为课程作业,请尊重劳动成果. 演示 [文件存储]中查看设备保存的文件 目录 activity_main <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/re
-
Android文件存储SharedPreferences源码解析
1.我们都知道SharedPreferences 是android可以用来存放key value的的文件. SharedPreferences sp = getSharedPreferences("fileName", Context.MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); editor.putString("key","value"); editor.commit(
-
详解Android 中的文件存储
目录 概要 当我们查看手机的文件管理器的时候,会发现里面的文件五花八门,想要找到自己项目所对应的文件非常困难,甚至有可能压根就找不到自己的文件,本文就来介绍一下APP开发过程当中文件存储的注意事项. 通常我们会将存放的文件分为两种:独立文件和专属文件.顾名思义,独立文件就是独立于APP之外的文件,不会随着APP的删除而删除,而专属文件则是专属于某个APP的文件,当APP删除后,会自动清空相对应的专属文件. 独立文件 独立文件指的是存放在shared/external storage direct
随机推荐
- Android Scroller及下拉刷新组件原理解析
- 一个Ajax类
- 我的文档和QQ聊天记录备份与恢复技巧
- SunTB编写IP地址设置切换批处理
- SQLite速度评测代码
- 保护你的Sqlite数据库(SQLite数据库安全秘籍)
- 正则表达式教程之位置匹配详解
- iOS开发之获取系统相册中的图片与视频教程(内带url转换)
- ASP.NET上传图片并生成可带版权信息的缩略图
- js 中rewrap-ajax.js插件实例代码
- 使用jQuery或者原生js实现鼠标滚动加载页面新数据
- ASP.net 路径问题 详解
- php实现中文转数字
- PHP 显示客户端IP与服务器IP的代码
- js的window.showModalDialog及window.open用法实例分析
- Windows下搭建python开发环境详细步骤
- C#利用WMI操作DNS服务器(可远程操作,需要相应权限)
- C++中 map的基本操作
- JS字符串统计操作示例【遍历,截取,输出,计算】
- 解析浏览器端的AJAX缓存机制