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