基础知识:android 数据存储--->文件存储
来源:互联网 发布:ACER windows激活 编辑:程序博客网 时间:2024/06/03 05:38
”数据存储“,顾名思义 有的时候我们在Android 应用程序开发中 不得不对一些数据进行存储 而数据存储 的作用无非就是 实现文件的快速检索高速存取 从而来满足用户在使用软件的良好体验。
在android中 文件存储有两种方式
1 通过IO文件流(FileOutPutStream) 中的OpenFileOutPut()和FileInPutStream中的openFileInput()方法访问磁盘上的内容文件进行输入输出 简单一点就是java上的那一套知识
2 Environment类中的getExternalStotageDirectory ()对SD卡进行数据读写
注:在默认情况下使用Io流保存文件仅当前应用程序和用户可见 若卸载了应用程序数据文件一并被删除,好处减少了应用程序被卸载后所留下的垃圾文件这样不需要手动删除.
第一种方式: 简单的工具类
/** 向文件中写入数据 * * @return true表示写入成功 false表示写入失败 */public static boolean saveToFile(String filename, int mode, byte[] data) {boolean isflag = false;FileOutputStream outputStream = null;try {outputStream = context.openFileOutput(filename, mode);outputStream.write(data, 0, data.length);// 保存字节数组isflag = true;} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return false;}/** * 从文件中读取数据 * * @param file * @return */public static String readFromFile(String filename) {String result = "";FileInputStream fileInputStream = null;try {ByteArrayOutputStream outputStream = new ByteArrayOutputStream();fileInputStream = context.openFileInput(filename);int len = 0;byte[] data = new byte[1024];while ((len = fileInputStream.read(data)) != -1) {outputStream.write(data, 0, len);}return new String(outputStream.toByteArray());} catch (Exception e) {System.out.println(e.getMessage());}return "";}第二种方式:
public class FileUtils { public static final String CACHE = "cache"; public static final String ICON = "icon"; public static final String ROOT = "AAb"; /** * 获取图片的缓存的路径 * * @return */ public static File getIconDir() { return getDir(ICON); } /** * 获取缓存路径 * * @return */ public static File getCacheDir() { return getDir(CACHE); } public static File getDir(String cache) { StringBuilder path = new StringBuilder(); if (isSDAvailable()) { path.append(Environment.getExternalStorageDirectory().getAbsolutePath()); path.append(File.separator);// '/' path.append(ROOT);// /mnt/sdcard/GooglePlay path.append(File.separator); path.append(cache);// /mnt/sdcard/GooglePlay/cache } else { File filesDir = uiUtilsTool.getBasAppContext().getCacheDir(); // cache // getFileDir // file path.append(filesDir.getAbsolutePath()); path.append(File.separator); path.append(cache); } File file = new File(path.toString()); if (!file.exists() || !file.isDirectory()) { file.mkdirs();// 创建文件夹 } return file; } private static boolean isSDAvailable() { if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { return true; } else { return false; } }}
1 0
- 基础知识:android 数据存储--->文件存储
- 【Android基础知识】文件存储
- Android 数据存储--文件存储
- android 数据存储-文件存储
- Android数据存储之文件存储数据
- Android数据存储之文件存储
- Android数据存储之文件存储
- Android数据存储之文件存储
- Android数据存储之文件存储
- Android数据存储之文件存储
- android数据存储之文件存储
- Android数据存储之文件存储
- Android数据存储之“文件存储“
- Android数据存储之文件存储
- Android数据存储之文件存储
- Android数据存储之文件存储
- Android数据存储之文件存储
- Android数据存储之文件存储
- 汇编速查-函数调用
- jquery 去重
- JS判断浏览器,不考虑版本
- Xcode8.1不支持ios6.1真机
- 设计模式之工厂模式
- 基础知识:android 数据存储--->文件存储
- java中dynamic web project与web project 的区别
- SQL(十五)-Join类型
- 86. Partition List
- Bootstrap3 栅格系统-实例:从堆叠到水平排列
- JS判断浏览器,考虑版本
- Java基础-集合框架8 Arrays
- Thead 1 概述
- Codeforces 510D. Fox And Jumping By Assassin 暴力大法好