”数据存储“,顾名思义 有的时候我们在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. NDK简单实例
  2. android 定制个性按钮 控件
  3. 【Android】Android(安卓)Studio中新创建的app目录结构
  4. Android使用文件进行数据存储的方法
  5. Chrome for Android(安卓)编译了两天终于在师傅指导下搞定
  6. 理解 Android(安卓)上的安全性
  7. 有关android加快开机速度
  8. Head First Android(安卓)Development-笔记
  9. Android(安卓)驱动跟系统开发 1. 一个简单的例子

随机推荐

  1. [置顶] android调用第三方库——第四篇—
  2. android 控件位置常用布局
  3. 修改android 睡眠的时间的两种方法
  4. Android(安卓)模拟器
  5. android之inputType属性
  6. android SDK2.3 更新改动翻译
  7. Android开发你需要具备的基本功
  8. Android中对Log日志文件的分析
  9. Android(安卓)Studio 网络调试
  10. 基于百度地图实现Android定位功能实现(详