【问题标题】:File not found in external sd在外部 sd 中找不到文件
【发布时间】:2014-04-18 11:26:52
【问题描述】:

我正在尝试读取我之前保存在外部存储中的音频文件,但我似乎无法通过我正在使用的方法找到它。

这是我用来将文件保存在外部 sdcard 中的;

outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + "/ejemplo.3gpp";

这就是我用来取回录制的音频文件的字节数组的方法:

InputStream is =this.openFileInput("/sdcard/ejemplo.3gpp"); 
bytes = IOUtils.toByteArray(is);

由于某种原因,似乎当我调用 openFileInput 时无法找到该文件,但使用“根浏览器”我检查过该文件实际上是否放置在“/sdcard/ejemlo.3gpp”中,所以我不知道发生了什么事....有什么建议吗?

【问题讨论】:

    标签: android inputstream android-external-storage


    【解决方案1】:

    /sdcard/ 不是默认值。它可以由 OEM 更改,在某些设备中它是 sdcard0 所以使用 Environment 类,因为你使用它来保存文件。

    File file = new File( Environment.getExternalStorageDirectory().getAbsolutePath() + "/ejemplo.3gpp");
    InputStream is = new FileInputStream(file);
    bytes = IOUtils.toByteArray(is);
    

    【讨论】:

    • 现在它似乎找到了文件,但是出于任何原因,我得到的数组只是一个 0`s 的数组......但我可以听到录制的声音,一切似乎没事……知道发生了什么吗?
    • 增加了外部存储的读写权限
    • 不知道为什么它只给出零。您可以尝试一些其他方法将inputstream 转换为byte arraystackoverflow.com/q/2436385/909317
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多