我试图用杰克·沃顿(Jake Wharton)DiskLruCache库实现基于磁盘的映像lru缓存。 link to library。我正在使用here中的代码段。

我遇到的方法是这个

private boolean writeBitmapToFile(Bitmap bitmap, DiskLruCache.Editor editor)
        throws IOException, FileNotFoundException {
    OutputStream out = null;
    try {
        out = new BufferedOutputStream(editor.newOutputStream(0), Utils.IO_BUFFER_SIZE);
        return bitmap.compress(mCompressFormat, mCompressQuality, out);
    } finally {
        if (out != null) {
            out.close();
        }
    }
}


其中editor.newOutputStream(0)不存在的地方

public Bitmap getBitmap(String key) {

    Bitmap bitmap = null;
    DiskLruCache.Snapshot snapshot = null;
    try {

        snapshot = mDiskCache.get(key);
        if (snapshot == null) {
            return null;
        }
        final InputStream in = snapshot.getInputStream(0);
        if (in != null) {
            final BufferedInputStream buffIn =
                    new BufferedInputStream(in, Utils.IO_BUFFER_SIZE);
            bitmap = BitmapFactory.decodeStream(buffIn);
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (snapshot != null) {
            snapshot.close();
        }
    }

        Log.d("cache_test_DISK_", bitmap == null ? "" : "image read from disk " + key);

    return bitmap;

}


其中也不存在snapshot.getInputStream(0)。

我究竟做错了什么?我已将jar与库一起放置,一切都很好,这些方法是否已从DiskLruCache库中删除?现在还有其他方法吗?我找不到任何示例或教程。

库版本是最新的disklrucache-2.0.2

最佳答案

确保您导入了正确的类:

import com.jakewharton.disklrucache.DiskLruCache

关于android - 使用DiskLruCache实现镜像Lru缓存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28967252/

10-09 06:11