Android:如何获取应用中所有缓存文件的列表?

时间:2015-01-19 20:35:41

标签: android caching

以下是我用来保存和加载缓存的函数:

public static void SAVE_CACHE(Context context, String key, Object object) throws IOException {
    FileOutputStream fos = context.openFileOutput(key, Context.MODE_PRIVATE);
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    oos.writeObject(object);
    oos.close();
    fos.close();
}

public static Object LOAD_CACHE(Context context, String key) throws IOException,
        ClassNotFoundException {
    FileInputStream fis = context.openFileInput(key);
    ObjectInputStream ois = new ObjectInputStream(fis);
    Object object = ois.readObject();
    return object;
}

假设我在缓存中保存了3个对象Contact的arraylists:

List<Contact> contacts = new ArrayList<Contact>();
contacts.add(new Contact());

SAVE_CACHE(context, "cache1", contacts);
SAVE_CACHE(context, "cache2", contacts);
SAVE_CACHE(context, "cache3", contacts);

是否可以获取哪些缓存键包含对象?我想要一个cache1,cache2和cache2的arraylist。

1 个答案:

答案 0 :(得分:0)

首先,您将需要指向存储文件的目录的指针,您可以使用上下文对象获取该文件,

File dir = context.getFilesDir()

返回File类型的对象。在此,您可以使用函数listFiles()来获取缓存文件列表,如下所示:

 dir.listFiles()

以下是具有这些功能以供进一步阅读的ContextFile的文档。

希望有所帮助..