【问题标题】:What's the file path of context.openFileOutput()context.openFileOutput() 的文件路径是什么
【发布时间】:2017-09-09 23:48:02
【问题描述】:

我想知道使用context.openFileOutput() 将我的文件写入(在存储中)的实际路径,如下所示(跳过异常)。

public static void writeObject(Context context, String name, Object object){

    FileOutputStream fos = context.openFileOutput(name, Context.MODE_PRIVATE);
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    oos.writeObject(object);
    oos.close();
    fos.close();

   }

【问题讨论】:

  • 序列化对象个数为1,你问文件有多少个?
  • 每个文件只保存一个序列化对象。答案要么是 1,要么您想知道有多少文件。下定决心。您对@Commonsware 回答的评论同意我的看法。
  • NB 您回滚的编辑是正确的。 android-studio 与此无关。您不是在问如何使用 IDE。

标签: java android serialization storage


【解决方案1】:

我怎样才能得到确切的路径

您正在使用openFileInput()openFileOutput()。这些文件存储在getFilesDir()标识的位置。

还有保存在该路径/目录中的对象总数?

好吧,似乎每个文件只存储一个对象。您可以在getFilesDir() 返回的File 对象上使用listFiles(),以查看该目录中有哪些文件。然后,您需要确定哪些文件代表您的对象(相对于该目录中的其他文件),并计算这些文件。

【讨论】:

    【解决方案2】:

    首先,我想让你明白一些事情:

    getFilesDir() 返回一个文件对象,您可以从中获取路径/位置。

    调用getFilesDir().listFiles() 会返回一个包含您使用openFileInput()openFileInput() 保存的所有文件的数组。

    根据上面的解释,你的文件都在getFilesDir()路径下。

    【讨论】:

    • 大约两年前我遇到了这个问题,但谢谢!我希望这对其他人有帮助。
    猜你喜欢
    • 2011-06-22
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    • 2020-12-12
    • 2014-06-30
    • 2020-12-14
    相关资源
    最近更新 更多