java - 如何删除存储在缓存中的文件? (安卓)

标签 java android fileinputstream

我无法删除存储在缓存中的文件。我出于多种目的使用缓存。我正在阅读和写作但无法删除。有人可以帮我解决这个问题吗?

//write
   public static void writeObject(Context context, String key, Object object)
                                  throws IOException {
            Log.d("Cache", "WRITE: context");
            FileOutputStream fos = context.openFileOutput(key, Context.MODE_PRIVATE);
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(object);
            oos.close();
            fos.close();
   }

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

//delete
   public static void clearCahe(String key) throws IOException,ClassNotFoundException {
        File file = new File(key);
        file.delete();
   }

最佳答案

context.openFileOutput(key将文件写入内部存储器。您可以使用 getFilesDir() 找到的路径,看起来像 /data/data/<yourpackagename>/files .

所以如果你想删除文件'key',你必须为File file = new File(path)设置路径作为String path = getFilesDir().getAbsolutePath() + "/" + key; .

并使用 file.exists() 检查文件是否存在!

关于java - 如何删除存储在缓存中的文件? (安卓),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29893292/

相关文章:

java - 如何保存和加载Android图像

java - 从文件 java 读取原始字节(字节序问题)

java - 我如何在java中读取二进制数据文件

android - 如何让搜索栏在歌曲播放时自动移动?

android - 如何在 Android 和 IOS 应用程序中正确显示来自 MySQL 数据库的选项卡(空格)?

java - Android 16 位彩色图像到位图

java - 为 Mac 用户制作 Java 应用程序

java - 使用 XMLEncoder 序列化 UUID

java - 在 grizzly 上设置 websocket SSL

java - 用于转换 native2ascii 的库,反之亦然