我有一个Android程序,它创建一个文件并在if语句中检查它。这样做的目的是能够在应用程序中保存值。这个应用就像这样。我将值放在手机上,然后我将应用程序崩溃以重置它。值保存在文件中。当我再次打开应用程序时,它应该跳过允许我输入值的屏幕。当我这样做时,该应用程序就好像该文件从未存在过。在调试时,我发现该文件确实已创建。它应该是在内部存储上创建的,但我还添加了外部存储写入权限以防万一。有人可以帮助我或给我一个替代方案吗?
File file = new File("user.txt");
if (file.exists())
{
...
}
答案 0 :(得分:1)
File f = new File();
它只是在运行时创建文件的文件实例。您需要使用以下代码来创建文件。
File file = new File("data/data/your package name/test.txt");
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
答案 1 :(得分:0)
尝试给它一个完整的路径,不仅仅是文件名,就像这个
File mFile = new File("/sdcard/mysdfile.txt");
答案 2 :(得分:0)
assets文件夹仅在运行时读取。
来自http://developer.android.com/guide/topics/data/data-storage.html#filesInternal
提示:如果要在编译时在应用程序中保存静态文件,请将该文件保存在项目res / raw /目录中。你可以用openRawResource()打开它,传递R.raw。资源ID。此方法返回一个可用于读取文件的InputStream(但您无法写入原始文件)。
使用SharedPreferences来保存原始数据类型。
答案 3 :(得分:0)
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();
}
}