本地缓存与缓存目录中的缓存可以通过以下代码示例来实现:
public class LocalCache {
private static final String PREF_NAME = "MyCache";
private static final String KEY_DATA = "cachedData";
public static void saveData(Context context, String data) {
SharedPreferences sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(KEY_DATA, data);
editor.apply();
}
public static String loadData(Context context) {
SharedPreferences sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
return sharedPreferences.getString(KEY_DATA, "");
}
}
在上面的代码中,我们使用SharedPreferences来保存和加载缓存数据。通过调用saveData()
方法可以保存数据,调用loadData()
方法可以加载数据。
public class FileCache {
private static final String CACHE_DIR_NAME = "MyCache";
public static void saveData(Context context, String data) {
File cacheDir = context.getCacheDir();
File file = new File(cacheDir, CACHE_DIR_NAME);
try {
FileOutputStream fos = new FileOutputStream(file);
fos.write(data.getBytes());
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static String loadData(Context context) {
File cacheDir = context.getCacheDir();
File file = new File(cacheDir, CACHE_DIR_NAME);
StringBuilder stringBuilder = new StringBuilder();
try {
FileInputStream fis = new FileInputStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
String line;
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
return stringBuilder.toString();
}
}
在上面的代码中,我们使用文件缓存来保存和加载缓存数据。通过调用saveData()
方法可以保存数据,调用loadData()
方法可以加载数据。
需要注意的是,以上示例仅为演示基本的本地缓存与缓存目录中的缓存实现方法,并没有考虑线程安全和缓存有效期等问题,实际使用中需要根据具体需求进行适当的扩展和优化。
下一篇:本地缓存与数据库一致性