写入缓存方法:

/*** 用于做本地缓存,T需要覆盖equals()方法和hashCode()方法*/
public class BufferStore<T extends Serializable & Comparable<T>> {private final String mBuffPath;/*** @param buffPath*            存放缓存的路径* */public BufferStore(String buffPath) {mBuffPath = buffPath;}/*** @param list*            向本地写入的缓存数据* @param maxCount*            本地缓存的最大数据量* */public synchronized void write(List<T> list, int maxCount) {if (list == null || maxCount <= 0) {return;}// 获得缓存数据List<T> oldList = get();// 将新数据加入for (T t : list) {// 不存在才加入if (!oldList.contains(t)) {oldList.add(t);}}// 将数据排序Collections.sort(oldList);// 删除多余数据for (int i = oldList.size() - 1; i >= maxCount; i--) {oldList.remove(i);}// 写入本地put(oldList);}/*** 读取缓存数据* * @return 缓存数据,数据为空时返回长度为0的list* */public synchronized List<T> read() {return get();}/*** 向本地写入数据* */private void put(List<T> list) {try {// 打开文件FileOutputStream fos = new FileOutputStream(mBuffPath);// 将数据写入文件ObjectOutputStream oos = new ObjectOutputStream(fos);oos.writeObject(list);// 释放资源oos.close();fos.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}/*** 从本地读取数据* */@SuppressWarnings("unchecked")private List<T> get() {List<T> list = new ArrayList<T>();try {File file = new File(mBuffPath);if (!file.exists()) {return list;}// 打开文件FileInputStream fis = new FileInputStream(mBuffPath);// 读取文件ObjectInputStream ois = new ObjectInputStream(fis);list = (List<T>) ois.readObject();// 释放资源ois.close();fis.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}return list;}}

android向本地写入缓存相关推荐

  1. Android清除本地数据缓存代码

    Android清除本地数据缓存代码案例 直接上代码: /* * 文 件 名: DataCleanManager.java * 描 述: 主要功能有清除内/外缓存,清除数据库,清除sharedPrefe ...

  2. android自定义图片缓存,适用于Android的本地图像缓存解决方案:Squ...

    更新于2018年9月:几年后,我需要与本地图像缓存解决方案几乎相同的东西.这一次,UIL尚未积极开发.我比较了流行的库,结论很简单:只需使用Glide.它功能强大且可配置.多年前我不得不分叉并对UIL ...

  3. Android/Linux 磁盘写入缓存/等待时间 参数修改

    Linux系统当进行文件写操作时,并不会将数据立马写入磁盘,而是写写到缓存,等待达到占用内存一定比例或超过一定时间才会批量将这些缓存数据写入磁盘,这样可以减少IO操作,提升性能和磁盘寿命.如果数据还没 ...

  4. Android向本地写入一个XML文件和解析XML文件

    在网络存储过程中有很多时候会遇到XML文件解析和使用XML保存一些信息,解析XML文件用的比较多的方法是pull解析和SAX解析,但是我一般只用pull解析,下面就向cd卡写入一个XML文件,然后再使 ...

  5. android 清理缓存 简书,分享:Android清除本地数据缓存代码

    /**文 件 名:DataCleanManager.java*描述:主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录*/ importjava ...

  6. Android仿人人客户端(v5.7.1)——对从服务器端(网络)获取的图片进行本地双缓存处理(编码实现)...

    转载请标明出处:http://blog.csdn.net/android_ls/article/details/8797740 这篇是基于上一篇Android仿人人客户端(v5.7.1)--对从服务器 ...

  7. Android之DiskLruCache(缓存工具)

    DiskLruCache DiskLruCache是一个十分好用的android缓存工具,我们可以从GitHub上下载其源码:https://github.com/JakeWharton/DiskLr ...

  8. Android 边播放边缓存视频框架:AndroidVideoCache简析

    一.背景 现在的移动应用,视频是一个非常重要的组成部分,好像里面不搞一点视频就不是一个正常的移动App.在视频开发方面,可以分为视频录制和视频播放,视频录制的场景可能还比较少,这方面可以使用Googl ...

  9. android强制缓存写磁盘,优雅的构建 Android 项目之磁盘缓存(DiskLruCache)

    Android 的缓存技术 一个优秀的应用首先它的用户体验是优秀的,在 Android 应用中恰当的使用缓存技术不仅可以缓解服务器压力还可以优化用户的使用体验,减少用户流量的使用.在 Android ...

最新文章

  1. 首款AI+智能工程头盔发布,小松(中国)与天远科技ICT战略签约成功举行
  2. iOS 9应用开发教程之多行读写文本ios9文本视图
  3. php 像页面输出html,PHP在页面中原样输出HTML代码的方法介绍
  4. 自学python需要多长时间-Python学习步骤如何安排?多长时间可以学会精通呢?
  5. 【HDU - 1465 】不容易系列之一 (组合数学,错排)
  6. 【codevs1262】不要把球传给我,非常无语的一道题目
  7. Java Web文件下载
  8. Ansible and FileBeta
  9. C++11 移动语义与右值引用
  10. 在阿里云上遇见更好的Oracle(三)
  11. Ubuntu Git安装与使用
  12. 【STM32】基带HDB3编解码系统设计(附完整代码)
  13. jQuery实现鼠标滑过图片放大效果
  14. Opencv打开basler相机——实现显示视频、保存图片、记录视频(Windows下)
  15. 2021-05-02 收心继续
  16. Composite(组合模式)
  17. CVBS-复合视频广播信号[转]
  18. 手机6120C 玩仙剑dos版
  19. c语言平时成绩占总分多少,平时成绩占多少啊 大学
  20. 二维数组应用——扫雷进阶版

热门文章

  1. 药方的量化方法笔记(学习与尝试):第二回 第二次 药方的拆解 量化方法的形式的发展 对药的量化分析
  2. 高效能人士的七个习惯读后感与总结概括-(第十章,)
  3. django: ImportError: cannot import name ‘render_to_response‘ 解决方法
  4. 【拉斯观测组联翻】川原砾 Sword Art Online 27 Unital Ring Ⅵ
  5. 网络基础知识OTN/PTN
  6. iOS8 横竖屏控制
  7. 教育大数据总体解决方案(6)
  8. 线性代数中英文对照(持续更新)
  9. 微信记录 android id,记录微信分享的一些坑
  10. 夹抱式伸缩货叉料箱多层穿梭车立体库|海格里斯HEGERLS高速穿梭车按需定制