以下是我用来保存和加载缓存的函数:
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
数组列表:
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);
是否可以获取哪些缓存键包含对象?我想要一个该缓存 1、缓存 2 和缓存 2 的数组列表。
首先,您需要指向存储文件的目录的指针,您可以使用以下命令从上下文对象中获取它,
File dir = context.getFilesDir()
这将返回一个类型为 File 的对象。对此,您可以使用函数 listFiles()
获取缓存文件列表,如下所示:
dir.listFiles()
下面是具有这些功能的上下文和文件的文档,以供进一步阅读。
希望有帮助..