Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android文件没有';不存在(但同时存在!)_Java_Android_File - Fatal编程技术网

Java Android文件没有';不存在(但同时存在!)

Java Android文件没有';不存在(但同时存在!),java,android,file,Java,Android,File,我有一个Android程序,它创建一个文件并在if语句中检查它。这样做的目的是能够在应用程序中保存值。这个应用程序就是这样工作的。我在手机上输入了这些值,然后使应用程序崩溃以重置它。这些值保存在文件中。当我再次打开应用程序时,应该跳过让我输入值的屏幕。当我这样做时,应用程序的行为就好像该文件从未存在过一样。调试时,我发现确实创建了该文件。它应该是在内部存储上创建的,但我还添加了外部存储写入权限,以防万一。有人能帮我或给我一个选择吗 File file = new File("user.txt")

我有一个Android程序,它创建一个文件并在if语句中检查它。这样做的目的是能够在应用程序中保存值。这个应用程序就是这样工作的。我在手机上输入了这些值,然后使应用程序崩溃以重置它。这些值保存在文件中。当我再次打开应用程序时,应该跳过让我输入值的屏幕。当我这样做时,应用程序的行为就好像该文件从未存在过一样。调试时,我发现确实创建了该文件。它应该是在内部存储上创建的,但我还添加了外部存储写入权限,以防万一。有人能帮我或给我一个选择吗

File file = new File("user.txt");
    if (file.exists())
    {
        ...
    }
它只是在运行时创建一个file的file实例。您需要使用以下代码来创建文件

        File file = new File("data/data/your package name/test.txt");
        if (!file.exists()) {
                try {
                    file.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
        }

试着给它一个完整的路径,而不仅仅是文件名,像这样

File mFile = new File("/sdcard/mysdfile.txt");

资产文件夹在运行时是只读的

提示:如果要在编译时在应用程序中保存静态文件,请将该文件保存在项目res/raw/目录中。您可以使用openRawResource()打开它,并传递R.raw。资源ID。此方法返回可用于读取文件(但不能写入原始文件)的InputStream


查看用于保存基本数据类型的用法。

为什么不使用SQLite数据库来保存数据?如果没有太多的
数据要保存,请使用
SharedReference
。将文件保存到哪个目录?如上图所示?如
新文件(Environment.getExternalStorageDirectory(),“mysdfile.txt”)是。使用
文件文件=新文件(context.getFilesDir(),“test.txt”)取而代之
/data/data/…
在未来的android版本中可能会更改。@zapl非常感谢您!这有帮助!如果我有足够的声誉,我会给你投票。
        Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);

                File direct = new File(Environment.getExternalStorageDirectory() + "/Folder/Filename");
                if (!direct.exists()) {
                    direct.mkdir(); // directory is created;
                }
                if (isSDPresent) {
                    Path = Environment.getExternalStorageDirectory() + "/Folder/Filename";

                } else {
                    Path = getFilesDir() + "/Folder/Filename";
                }
        File f = new File(Path);
      if(!file.exists()) {
       try {
                        file.createNewFile();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
}
        Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);

                File direct = new File(Environment.getExternalStorageDirectory() + "/Folder/Filename");
                if (!direct.exists()) {
                    direct.mkdir(); // directory is created;
                }
                if (isSDPresent) {
                    Path = Environment.getExternalStorageDirectory() + "/Folder/Filename";

                } else {
                    Path = getFilesDir() + "/Folder/Filename";
                }
        File f = new File(Path);
      if(!file.exists()) {
       try {
                        file.createNewFile();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
}