【问题标题】:Where to put a settings file?在哪里放置设置文件?
【发布时间】:2014-06-20 03:24:19
【问题描述】:

好的,我有几个用于 Android 应用的数据文件。这些文件包含每个项目和变量的列表,所以我认为使用“键值”方法不会很好。

我最初将文件放在“原始”文件夹中,但后来我了解到您无法写入该位置,并且该文件确实需要可更新。我现在让它从(afaik)我程序内部存储的根目录(File file = new File(getApplicationContext().getFilesDir(), "settings.txt"); )读取和写入,并且工作正常。但我想做的是在我安装/更新应用程序时放置一个默认设置文件。

例如,当我使用“raw”文件夹时,我可以将文件放在计算机上的“raw”目录中,并在运行应用程序时显示它。我可以在我的应用也可以写入的位置上获得这种行为吗?如果可以,如何实现?

编辑:可以尝试澄清一下,我正在寻找的是我可以找到的位置 a) 让我的应用在手机上读取和写入数据 b) 可以在安装/更新应用程序时将文件放在该位置,就像您可以将文件放在 PC 上的原始文件夹中并让您的应用程序能够读取它一样。

我只是想知道这是否可行。

【问题讨论】:

    标签: java android file save filewriter


    【解决方案1】:

    据我所知,您可以在应用程序的根目录中创建一个文件夹来保存您的文件。从那里,您应该能够创建、读取、更新和删除文件。

    File dir = new File(getApplicationContext().getFilesDir(),"directory name");
    if(!dir.exists()) {
        try {
            dir.mkdir();
        } catch (SecurityException e) {
            //deal with exception
        }
    }
    File settings = new File(dir, "settings.txt");
    if(!settings.exists()) {
        try {
            settings.createNewFile();
        } catch (SecurityException e) {
            //deal with exception
        }
    }
    

    也许这对你有用?

    android 可能会抛出它自己的 SecurityException 形式


    我建议您创建一个 Java 类来创建、读取和写入 settings.txt 文件。如果您想让该类还创建一个默认的 settings.txt 文件,并且如果 settings.txt 文件不存在,则将该文件写入选择的文件夹。

    【讨论】:

    • 我应该把文件放在我电脑的什么地方,以便在安装/更新应用程序时将它放在那个文件夹中?我尝试将它放在 development\workspace\...[projectname]\...[directory name]\ 中,其中目录名称与我的应用程序使用的目录匹配。我已经尝试将它作为一个文件放在任何地方,该文件将进入根目录。
    • 是需要程序生成的文件吗?或者您只是想看看程序如何响应文件的内容?如果是前者,可以让程序创建指定内容的文件。
    • 程序可以更新文件(并且必须具有对它的读写权限)。这部分我没有问题,它已经做到了。我还希望能够在目录中放置一个起始文件,这样我就可以从一些用于测试/故障排除的好数据开始,这样我就可以为新安装放置一些示例数据。这是我做不到的部分。我可以将一个文件放在“原始”目录中,但是我无法用我的应用程序写入它,所以我放弃了这种方法。
    • 重新编辑您的最新编辑:硬编码默认设置确实不是一个好方法。从理论上讲,我可以将默认设置放在“原始”目录中,然后让程序将其复制到根目录。这将是一个比硬编码一大堆条目更好的方法......但我宁愿找出是否有更好的解决方案。
    • 我也已经有一个为应用程序读写文件的类。这部分不是我需要帮助的。
    猜你喜欢
    • 2019-07-01
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多