如何读写缓存中的文件?

9

我想为我的应用程序保存一些缓存数据。我过去使用将数据保存在外部存储器中来实现这一点,这个方法很好用。但是我希望我的设备能够在应用程序设置中显示我的缓存大小,但它并没有这样做。我猜测这是因为我将数据保存在外部存储器中。现在我想让我的数据在关闭应用程序甚至关闭设备后仍然存在。现在我尝试将文件保存在内部存储器中,但我在读取文件时遇到了麻烦,并且在应用程序设置中缓存大小仍然不正确。请问是否有人可以向我提供在应用程序缓存中写入和读取字符串的方法?


但我在读取文件方面遇到了麻烦。哪些问题呢?读写文件使用相同的方法来处理内部和外部存储器。所以你具体的问题是什么?请说明你认为的“应用程序路径”。完整路径是多少? - greenapps
1个回答

13

我认为一切都已经清晰地解释在这里... :)

如果你只有简单的数据,你可以像这样使用SharedPreferences:

public static void writeString(Context context, final String KEY, String property) {
    SharedPreferences.Editor editor = context.getSharedPreferences(Constants.SHARED_PREFERENCES_KEY, context.MODE_PRIVATE).edit();
    editor.putString(KEY, property);
    editor.commit();
}

public static String readString(Context context, final String KEY) {
    return context.getSharedPreferences(Constants.SHARED_PREFERENCES_KEY, context.MODE_PRIVATE).getString(KEY, null);
}
为了使用缓存,您必须使用该方法。
File file = new File(context.getCacheDir(), filename);

它会返回一个文件对象,你可以在其上进行读写操作。

使用以下内容进行写入:

FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(fcontent);
bw.close();

请注意,如果系统空间不足,Android可能会删除此文件,因此不要使用它来存储过多的数据。(> 1MB)


虽然此链接可能回答了问题,但最好在此处包含答案的基本部分并提供参考链接。仅有链接的答案如果链接页面更改则会变得无效。 - Marcelo
是的,抱歉,我没有考虑到这种情况。 - Magnas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接