Java 在哪里放置设置文件?

Java 在哪里放置设置文件?,java,android,file,save,filewriter,Java,Android,File,Save,Filewriter,好的,我有几个安卓应用程序的数据文件。这些文件包含每个项目和变量的列表,因此我认为使用“Key-Value”方法不会很好 我最初将文件放在“raw”文件夹中,但后来我了解到,您无法写入该位置,并且该文件确实需要可更新。现在,我可以从(afaik)程序内部存储器的根目录(File File=new File(getApplicationContext().getFileDir(),“settings.txt”);读取和写入它,这样就可以了。但我想做的是在安装/更新应用程序时放置一个默认设置文件 例

好的,我有几个安卓应用程序的数据文件。这些文件包含每个项目和变量的列表,因此我认为使用“Key-Value”方法不会很好

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

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

编辑:好的,试着澄清一下,我要找的是一个我能找到的地方 a) 让我的应用程序在我的手机上读写数据 b) 可以在安装/更新应用程序时将文件放在该位置,就像你可以将文件放在电脑的原始文件夹中,让应用程序能够读取文件一样


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

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

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]\中,其中的目录名与我的应用程序使用的目录匹配。我试着把它作为一个文件放在任何地方,它将进入根目录。它是一个需要由程序生成的文件吗?或者您只是想看看程序如何响应文件的内容?如果是前者,您可以让程序创建具有指定内容的文件。该程序可以更新该文件(并且需要对其具有读写访问权限)。这部分我没有问题,它已经做到了。我还希望能够在目录中放置一个开始文件,这样我就可以从一些好的数据开始进行测试/故障排除,这样我就可以为新安装提供一些示例数据。这是我不能做的部分。我可以把一个文件放在“raw”目录下,但是我无法用我的应用程序写入它,所以我放弃了这种方法。重新编辑你的最新编辑:硬编码默认设置似乎不是一个好方法。理论上,我可以将默认设置放在“raw”目录中,并让程序将其复制到根目录。这将是一个比硬编码一大堆条目要好得多的方法……但我更想知道是否有更好的解决方案。我也已经有了一个为应用程序读写文件的类。这部分不是我需要帮助的。