Android数据持久化保存--File
//系统清理缓存的时候,内部存储私有目录cache下的文件和外部存储私有目录cache下的文件都被清除 //系统清除数据的时候,内部存储私有目录和外部存储私有目录下的文件都被清除 //openFileOutput在getFilesDir()目录下打开或者创建文件,文件不存在的时候则创建文件 //getFilesDir()目录可以存放持久文件,只要应用不卸载,但是这个目录我们看不见,因为它属于内部存储目录 //通过文件管理器看到的都是外部存储目录 //写入 private void getFileDirTest(){// /data/user/0/com.example.administrator.copypaste/files Log.i("wanlijun",getFilesDir().getAbsolutePath()); try {FileOutputStream fos = openFileOutput("buling",MODE_APPEND); FileInputStream fis = new FileInputStream(Environment.getExternalStorageDirectory() +"/1.txt"); byte[] buffer = new byte[1024]; int len = 0; while ((len = fis.read(buffer)) != -1){fos.write(buffer,0,len); }fos.flush(); fos.close(); fis.close(); }catch (Exception e){e.printStackTrace(); } } //读取 private void getFileDirTest2(){Log.i("wanlijun",getFilesDir().getAbsolutePath()); try {FileInputStream fis = openFileInput("buling"); FileOutputStream fos = new FileOutputStream(Environment.getExternalStorageDirectory() +"/moezu.txt"); byte[] buffer = new byte[1024]; int len = 0; while ((len = fis.read(buffer)) != -1){fos.write(buffer,0,len); }fos.flush(); fos.close(); fis.close(); }catch (Exception e){e.printStackTrace(); } }private void getExternalStorage(){//获取外部存储的公有目录->/storage/emulated/0/DCIM Log.i("wanlijun",Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath()); //获取外部存储的私有目录,清除数据就是删除该应用的私有目录(内部存储设备->Android->data目录下的) //获取文件根目录,应用不卸载,可长期存放文件 File[] files = MainActivity.this.getExternalFilesDirs(Environment.DIRECTORY_DCIM); for(File file:files){///storage/emulated/0/Android/data/com.example.administrator.copypaste/files/DCIM Log.i("wanlijun",file.getAbsolutePath()); }//获取文件内的具体目录->/storage/emulated/0/Android/data/com.example.administrator.copypaste/files/DCIM //就是文件管理器里的内部存储设备->Android->data目录下面的 Log.i("wanlijun",MainActivity.this.getExternalFilesDir(Environment.DIRECTORY_DCIM).getAbsolutePath()); //获取缓存目录,清除缓存就是删除该目录和内容 ///storage/emulated/0/Android/data/com.example.administrator.copypaste/cache Log.i("wanlijun",MainActivity.this.getExternalCacheDir().getAbsolutePath()); File[] files1 = MainActivity.this.getExternalCacheDirs(); for(File file:files1){Log.i("wanlijun",file.getAbsolutePath()); }//获取应用存放媒体的目录,目录内的内容可以被其他应用访问,通过MediaStore查询和获取 ///storage/emulated/0/Android/media/com.example.administrator.copypaste(内部存储设备->Android->media->该应用的包名) File[] files2 = MainActivity.this.getExternalMediaDirs(); for (File file:files2){Log.i("wanlijun",file.getAbsolutePath()); } }//检查存储介质的可用性 private boolean isExternalStorageWritable(){if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){return true; }else{return false; }
}
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {super.onRequestPermissionsResult(requestCode, permissions, grantResults); if(requestCode == 101){if(grantResults.length>0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){getFileDirTest(); }else{Toast.makeText(MainActivity.this,"请先开启存储权限",Toast.LENGTH_LONG).show(); }} }
if(ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},101); }else{ // getFileDirTest(); getFileDirTest2(); getExternalStorage(); }
Android数据持久化保存--File相关推荐
- android 清空数组缓存,Android数据持久化之读写SD卡中内容的方法详解
本文实例讲述了Android数据持久化之读写SD卡中内容的方法.分享给大家供大家参考,具体如下: 前面文章里讲的那三个方法:openFileOutput.openFileInput虽然都能通过流对象O ...
- Android数据持久化
Android数据持久化(存储) 1.SharedPreferences SharedPreferences是Android提供的数据持久化的一种手段,适合单进程.小批量的数据存储与访问.Shared ...
- Android数据持久化技术
Android 数据持久化技术 数据持久化 文件存储 将数据存储到文件中 从文件中读取数据 SharedPreferences存储 使用SharedPreferences存储数据 从SharedPre ...
- Android数据持久化存储
Android数据持久化存储共有四种方式,分别是文件存储.SharedPreferences.Sqlite数据库和ContentProvider.在本篇幅中只介绍前面三种存储方式,因为ContentP ...
- Android—数据持久化、SP源码
3种数据持久化: File:openFileInput(String fileName).openFileOutput(String fileName, int mode) 不对存储的内容进行任何的格 ...
- Android数据持久化:SharePreference
SharePreference:作为Android数据持久化的一种,具有一定的便捷性,适合存储一些体积小的数据. 存储数据方式:键值对的方式,类似于Map: 利用SharePreference.Edi ...
- android 数据持久化——File
在使用Java SE平台开发C/S结构的软件中,File 的IO输入输出流的使用率是非常高的,通过使用IO输入输出流可以对存储介质上的文件进行读写操作,下面的代码就是实现一个在Android平台上使用 ...
- Android数据持久化:文件存储
数据持久化: 数据可分为瞬时数据和关键数据.保存在内存之中的数据是瞬时数据,而对于一些关键性数据,后期需要持续使用的,应当保存在存储设备中: 持久化保存方式: 文件存储.SharePreference ...
- Android 数据持久化
文章目录 一.数据存储 1. 数据存储方式 二. 文件存储 1. 文件存储方式分类 (1). 内部存储 1. 内部存储文件路径 2. 特点 3. 过程 4. 实例:实现备忘录 (2). 外部存储 1. ...
最新文章
- java htmlparser 使用教程_Java解析HTML之HTMLParser使用与详解
- 创建ContentProvider的详细步骤
- 【深入浅出-JVM】(序)
- Win32 多线程学习总结
- 51标准c语言语句范例,51单片机C语言编程100例
- linux安装mysql社区版 rpm_linux系统rpm包安装mysql
- linux 命令 考试,linux常用命令总结-第一次考试
- 20155235 《网络攻防》 实验八 Web基础
- jquery --- 使用when方法等待2个异步事件结束后执行某一个函数.
- 网络知识:核心交换机概念知识介绍
- sql 非主键每年自增_或许你不知道的 10 条 SQL 技巧
- C89 和 C99的标准比较
- Qt 学习之路 :访问网络(4)
- Linux(ubuntu 18.0.4) Java环境安装,环境变量配置
- C# 反射应用实例-获取当前Color类的所有颜色
- 懂生意的产品经理,才能做好商业化
- MYSQL解决科目余额表汇总问题
- 次模优化·第〇集:简介
- 我们过度解读了鲁迅了么?
- 运维是技术含量最低的岗位吗?自学应该看书还是看视频?答案都在这里!
热门文章
- h200和gr1108_华三H3C GR1108-P 路由器性能极限
- BUUCTF WEB [BSidesCF 2020]Had a bad day
- 出来行,迟早是要还的(篇六):衣带渐宽终不悔
- 华为手机 绑定MAC 无法上网
- 权值初始化 - Xavier和MSRA方法
- Ambassador系列-09-AuthService认证服务
- EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES 论文笔记
- SEO优化之og:标签
- 如何取消linux响铃_彻底关闭 Linux响铃的方法
- 华大HC32A460 系列介绍(一)