【问题标题】:Unable to write to the Internal Storage无法写入内部存储
【发布时间】:2013-11-28 13:30:00
【问题描述】:

请看下面的代码

File folder = new File("/Main Note/Sub Notes/"+dateStr+"/");
File file = new File(folder+name.getText().toString()+".txt");
    try
    {

        if(!folder.exists())
        {
            folder.mkdirs();
        }

        FileOutputStream outputStream =  openFileOutput(file.getName(),Context.MODE_WORLD_WRITEABLE);
        outputStream.write(spokenText.getBytes());
        outputStream.flush();
        outputStream.close();

        Toast.makeText(VoiceNotes.this, "Data Successfully written to: "+file.getAbsolutePath(), Toast.LENGTH_LONG).show();
    }
    catch(IOException io)
    {
        Toast.makeText(VoiceNotes.this, "Error in Writing to SD", Toast.LENGTH_LONG).show();
    }

我正在尝试将数据写入内部存储器。这没有错误,显示数据已经写入成功。

但是当我导航到手机中的内部 SD 时,我没有看到它创建的任何文件夹或文件!我想我做错了什么,这是我第一次在 Android 中写入内部存储。

【问题讨论】:

  • 您是否在清单中授予了所需的权限?
  • @contactmeandroid:什么权限?
  • @Artificial_Intelligence mb
  • @Suvtruf:为什么要写设置?

标签: java android file-io io fileoutputstream


【解决方案1】:
File folder = new File(context.getFilesDir(),"/MyFolder/");

文件将在“/data/data/app.package/files/...”中创建。但是只有在设备被植根时才能看到它们

【讨论】:

  • 好的。但是雅虎之类的应用程序直接写入内部存储,我可以从资源管理器中看到它们。
  • @Artificial_Intelligence 我认为,在公用文件夹中写入数据是不好的行为。应用程序应将数据存储在自己的内部存储中。
  • 在很多情况下,是的。但是假设你有一个相机应用程序 - 你会希望能够保存到 SD 卡,不是吗?
  • 我需要写入公用文件夹。因为任何其他应用程序也可以访问数据。
  • @Artificial_Intelligence 你真的需要写入内部存储吗?您可以将数据写入外部存储,以便其他应用也可以访问数据。
【解决方案2】:

您想访问getExternalStorageDirectory() 返回的路径,如here 所述。

【讨论】:

  • 这是内部的,不是外部的
  • 没错,但遗憾的是它在 Android 设备中并没有标准化,SD 卡是内部的,哪个是外部的。您将取回其中一个,但哪一个取决于您的设备。如果您想在任何情况下访问内部的,也许这个问题会对您有所帮助:stackoverflow.com/questions/17203615/…
猜你喜欢
  • 1970-01-01
  • 2011-12-05
  • 1970-01-01
  • 1970-01-01
  • 2013-06-06
  • 1970-01-01
  • 2012-08-11
  • 2016-03-24
  • 1970-01-01
相关资源
最近更新 更多