DiskLruCache 不同于LruCache,LruCache是将数据缓存到内存中去,而DiskLruCache是外部缓存,例如可以将网络下载的图片永久的缓存到手机外部存储中去,并可以将缓存数据取出来使用,DiskLruCache不是google官方所写,但是得到了官方推荐,DiskLruCache没有编写到SDK中去,如需使用可直接copy这个类到项目中去。
- DiskLruCache的创建
- DiskLruCache缓存
- DiskLruCache的读取
- DiskLruCache删除
使用前添加依赖:
implementation 'com.jakewharton:disklrucache:2.0.2'
缓存:
代码如下:
/**
* 保存要缓存的数据
* @param path
*/
public void saveCacheData(String path){
try {
String key = hashKeyForDisk(path);
DiskLruCache.Editor editor = mDiskLruCache.edit(key);
if (editor != null) {
OutputStream outputStream = editor.newOutputStream(0);
if (downloadUrlToStream(path, outputStream)) {
editor.commit();
} else {
editor.abort();
}
}
mDiskLruCache.flush();
} catch (IOException e) {