【问题标题】:Check if a file has been written to in Android检查文件是否已在 Android 中写入
【发布时间】:2013-02-25 03:48:11
【问题描述】:

我有一个关于 Android 编程的问题。基本上,我不确定在哪里检查我的文件在哪里,以及我是否正确写入。我想找到文件的位置,我也想知道我是否正确地写入它。以下是我想出的代码:

String lsNow = "testing";
try {
    fos = openFileOutput("output.txt", Context.MODE_APPEND);
    fos.write(lsNow.getBytes());
    fos.close();
}
catch{
...
}

在哪里可以找到 output.txt?可能有人知道如何检查这一切吗?如果是这样,那就太好了!顺便说一句,我正在使用模拟器。如果我要在真正的 Android 上执行此操作,还有一种方法可以解决这个问题吗? (仅供参考)

【问题讨论】:

  • 您可以在/data/data/<your package name>/files 文件夹中找到您的文本文件。如果我没记错的话,你可以使用模拟器或者root设备来抓取它。
  • 如果您不介意解释,您能否详细说明如何在模拟器中抓取它?
  • 道歉。使用 DDMS > 文件资源管理器。
  • @system32 :不要建议人们使用诸如/data/data/<your package name>/files 之类的硬编码路径——这与事情的工作方式背道而驰。无法保证任何给定的设备制造商都会遵循该模式,这正是存在 openFileOutput(...)openFileInput(...) 方法的原因。
  • @Squonk 谢谢朋友。 +1 为此。

标签: android file file-io


【解决方案1】:

您可以通过两种方式对其进行测试

  1. 使用文件资源管理器

    转到 DDMS 透视图--> 打开文件资源管理器-->文件位置

  2. 通过使用exits() 方法以务实的方式

    文件 file = new File(context.getFilesDir(), filename); if(file.exists())

【讨论】:

  • 在你 eclipse 中转到 --->Window--->Preferences--->Android->File Explorer 并在文件资源管理器中检查你在 sd 卡中的文件
  • @Pragnani : 使用 openFileOutput(...) 不会写入 SD 卡 - 它会写入内部存储。
  • 对此感到抱歉....我现在有转义显示视图选项的顺序是在你 eclipse goto --->Window--->Show View--->Android-->File Explorer
  • 在文件资源管理器中 data/data/your_project_package_structure/files/output.txt
【解决方案2】:

使用openFileOutput(...) 意味着该文件将被写入 Android 设备上的内部存储中,该区域是安全的,不会被其他应用访问。

如果您想确保正确写入文件,请确保您的 catch 块处理任何失败(如果调用它,则文件写入失败)。

要在文件写入后访问文件,请使用openFileInput(...)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 2012-09-20
    相关资源
    最近更新 更多