【问题标题】:Saving file to phone instead of SD card将文件保存到手机而不是 SD 卡
【发布时间】:2011-06-08 09:23:02
【问题描述】:

在我的应用程序中,我通过 File newxmlfile = new File(Environment.getExternalStorageDirectory() + "/Message.xml"); 将 XML 文件保存到用户的 SD 卡中

但并非所有用户的手机中都有 SD 卡,因此我的应用可能会崩溃。

我必须如何更改文件创建方法才能将文件保存到手机内存而不是 SD 卡?

另外,我必须如何更改文件的加载? (目前:new InputSource(new FileInputStream(Environment.getExternalStorageDirectory() + "/Message.xml"))

编辑:我不认为你的问题是正确的。我知道 Android Docs 的 Data-Storage 页面并且我已经阅读了它。我只想知道我应该如何调整它以匹配我当前保存和加载文件的方式。

【问题讨论】:

  • 每台 Android 兼容设备都支持共享“外部存储”,您可以使用它来保存文件。这可以是可移动存储介质(例如 SD 卡)或内部(不可移动)存储。注意:不要被这里的“外部”这个词弄糊涂了。最好将此目录视为媒体/共享存储。它是一个在所有应用程序之间共享的文件系统(不强制执行权限)。传统上这是一张 SD 卡,但它也可以作为设备中的内置存储实现,与受保护的内部存储不同并且可以挂载作为计算机上的文件系统。

标签: android file save


【解决方案1】:

通过改变得到它

Environment.getExternalStorageDirectory() + "/Message.xml"

进入

Environment.getDataDirectory() + "/data/com.companyname.appname/files/Message.xml"

【讨论】:

    【解决方案2】:

    首先,您应该通过检查 getExternalStorageState() 检查外部存储(SD 卡)是否可用并准备好写入。 在这里阅读更多:http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

    然后,如果 SD 卡不可用,您可以写入内部存储。 在此处阅读更多内容,例如如何编写和阅读:http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

    【讨论】:

    • 问题是我不希望我的应用程序碎片化。我想要一个在所有设备上都一样的版本。另外,我不想在我的应用程序中进行检查。这要容易得多。
    • 好的,那么你应该只保存到内部存储,就像你在问题中写的那样,甚至不要检查外部存储。
    【解决方案3】:

    试试安卓Data-Storage

    希望这会有所帮助。

    【讨论】:

      【解决方案4】:

      您可以使用openFileOutput 访问内部存储。更多信息,您应该阅读documentation on internal storage

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-30
        • 2012-04-06
        相关资源
        最近更新 更多