/** Closes this cache. Stored values will remain on the filesystem. */ public synchronized void close() throws IOException { if (journalWriter == null) { return; // Already closed. } for (Entry entry : new ArrayList<Entry>(lruEntries.values())) { if (entry.currentEditor != null) { entry.currentEditor.abort(); } } trimToSize(); journalWriter.close(); journalWriter = null; }
try { if (editor != null) editor.abort(); } catch (IOException e1) { e1.printStackTrace();
editor.commit(); else editor.abort();
editor.abort(); manager.deliverError(e);
try { if (editor != null) { editor.abort();
try { if (editor != null) editor.abort(); } catch (IOException e1) { e1.printStackTrace();
cacheItem.commit(); } else { cacheItem.abort();
@Override public void put(String key, File value, CacheLoadFinishListener listener) { if (diskLruCache == null || value == null || TextUtils.isEmpty(key)) { return; } DiskLruCache.Editor editor = null; try { String cacheKey = cacheKeyProvider.buildCacheKey(key); editor = diskLruCache.edit(cacheKey); if (editor != null) { OutputStream os = editor.newOutputStream(0); if (writeCache(value, os) && listener != null) { listener.onFinished(); } editor.commit(); } diskLruCache.flush(); } catch (IOException e) { try { if (editor != null) { editor.abort(); } } catch (IOException e1) { e1.printStackTrace(); } } }
/** * 下载图片放入本地缓存 * @param urlString 下载图片的链接 * @throws IOException */ public void downloadImageToDiskCache(String urlString) throws IOException { if(mDiskLruCache == null){ return ; } String key =MD5Utils.hashKeyFromUrl(urlString); DiskLruCache.Editor editor =mDiskLruCache.edit(key); if(editor != null){ //打开本地缓存的输入流 OutputStream outputStream =editor.newOutputStream(DISK_CACHE_INDEX); //将从网络下载并写入输出流中 if(NetRequest.downloadUrlToStream(urlString,outputStream)){ //提交数据,并是释放连接 editor.commit(); }else{ //释放连接 editor.abort(); } mDiskLruCache.flush(); } }
@Override protected <T> boolean doSave(String key, T value) { if (mDiskLruCache == null) { return false; } try { DiskLruCache.Editor edit = mDiskLruCache.edit(key); if (edit == null) { return false; } OutputStream sink = edit.newOutputStream(0); if (sink != null) { boolean result = mDiskConverter.writer(sink, value); Utils.close(sink); edit.commit(); return result; } edit.abort(); } catch (IOException e) { e.printStackTrace(); } return false; }
@Override protected <T> T doLoad(Type type, String key) { if (mDiskLruCache == null) { return null; } try { DiskLruCache.Editor edit = mDiskLruCache.edit(key); if (edit == null) { return null; } InputStream source = edit.newInputStream(0); T value; if (source != null) { value = mDiskConverter.load(source,type); Utils.close(source); edit.commit(); return value; } edit.abort(); } catch (IOException e) { e.printStackTrace(); } return null; }
private void putDataToDiskLruCache(Image image) { try { /* 第一步:获取将要缓存的图片的对应唯一 key 值 */ String key = DiskCacheUtil.getMD5String(image.getUrl()); /* 第二步:获取 DiskLruCache 的 Editor */ DiskLruCache.Editor editor = mDiskLruCache.edit(key); if (null != editor) { /* 第三步:从 Editor 中获取 OutputStream */ OutputStream outputStream = editor.newOutputStream(0); /* 第四步:下载网络图片且保存至 DiskLruCache 图片中 */ boolean isSuccessful = download(image.getUrl(), outputStream); if (isSuccessful) { editor.commit(); } else { editor.abort(); } mDiskLruCache.flush(); } } catch (IOException e) { e.printStackTrace(); } }
DiskLruCache.Editor editor = mHttpDiskCache.edit(key); if (editor != null) { if (downloadUrlToStream(data,editor.newOutputStream(DISK_CACHE_INDEX))) { editor.commit(); } else { editor.abort(); } }
@Override public Bitmap put(String key, Bitmap data) { if (contains(key)) { return data; } DiskLruCache.Editor editor = null; try { editor = mDiskCache.edit(key); if (editor != null) { if (writeBitmapToCache(data, editor)) { mDiskCache.flush(); editor.commit(); } else { editor.abort(); } } } catch (IOException e) { try { if (editor != null) { editor.abort(); } } catch (IOException ignored) { // } } return data; }
public void abortUnlessCommitted() { if (!committed) { try { abort(); } catch (IOException ignored) { } } }