cacheData在手机的文件管理里cache.data是什么文件意思

手机里的文件夹cache是什么意思?可以删除么?
缓存文件,可以删,删了后还会在生成的,要定期清理
为您推荐:
其他类似问题
扫描下载二维码Android 数据缓存-文件存储
APP开发过程中,我们通常会加入缓存模块。缓存即在本地保存APP的一些数据,大部分是将网络请求的数据进行本地保存,这样在缓存数据有效期内就可以直接使用缓存数据,降低了APP和服务器的压力,也极大提升了用户体验。Android数据缓存既可以以数据表的形式进行保存,也可以以文件的形式进行缓存。这里我主要通过缓存文件存储数据,并在APP下一次启动时读取。
整个Cache模块的设计思想很简单,每个缓存数据都对应一个key,每个缓存数据又会被存到以此key命名的文件中,需要时直接读取。关键类分别为CacheData, CacheManager, CacheUtils。
CacheData:数据封装类,所有欲缓存的数据都通过CacheData封装,CacheData中能够定义缓存有效期,并可以通过getData()直接获取真实的缓存数据。 CacheManager: 缓存管理类,单例模式设计,负责缓存的存储和读取。 CacheUtils: 缓存常用类,所有的缓存Key都应该在这个类中定义,此类还定义了一些时间常量,缓存有效期中可以使用。
使用方法如下:
step1: CacheManager.init(Context context), 在APP加载时就应该对CacheManager初始化。 step2: 自定义的Model需要实现序列化,使用CacheData进行包装,然后使用CacheManager进行存储和读取。
CacheUtils.java 主要用来存放一些常用变量
public class CacheUtils {
public final static String KEY_TEST = &key_test&;
public final static long EXPIRATION_MINUTE = 60 * 1000;
public final static long EXPIRATION_HOUR =
60 * EXPIRATION_MINUTE;
public final static long EXPIRATION_DAY =
24 * EXPIRATION_HOUR;
public final static long EXPIRATION_WEEK = 7 * EXPIRATION_DAY;
CacheData.java 用来存储的数据结构
import java.io.S
public class CacheData implements Serializable {
private long lastU
public CacheData(String key, T data) {
this(key, data, -1);
public CacheData(String key, T data, long expiration) {
this.key =
this.expiration =
setData(data);
public void setData(T data) {
this.data =
this.lastUpdated = System.currentTimeMillis();
public boolean isValid() {
return expiration == -1 || lastUpdated + expiration & System.currentTimeMillis();
public String getKey() {
public T getData() {
CacheManager.java 读取与存储缓存
import android.content.C
import java.io.F
import java.io.FileInputS
import java.io.FileOutputS
import java.io.IOE
import java.io.ObjectInputS
import java.io.ObjectOutputS
public class CacheManager {
private static CacheM
private static Context mC
public static void init(Context context) {
mContext =
private CacheManager() {
public static CacheManager getInstance() {
if (instance == null) instance = new CacheManager();
public void addCache(CacheData cacheData) {
if (cacheData == null)
File file = new File(mContext.getCacheDir(), cacheData.getKey());
if (!file.exists()) {
file.createNewFile();
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
oos.writeObject(cacheData);
oos.close();
} catch (IOException e) {
e.printStackTrace();
public CacheData getCache(String key) {
File file = new File(mContext.getCacheDir(), key);
if (file == null)
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
CacheData cacheData = (CacheData) ois.readObject();
ois.close();
if (cacheData.isValid()) return cacheD
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
Code Download
项目代码托管在Github Repo中,欢迎star和fork。
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'}

我要回帖

更多关于 fscachedata 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信