我是Android的新手,目前正试图在一点点"游戏中保存一些文件"应用程序我正在学习,但文件似乎只在应用程序关闭之前一直存在。我跑的时候:
file.exists()
file.isFile()
或任何类似的方法,它们在重新启动应用程序时总是返回false。
这是我在网上找到的保存文件的方法:
public void writeToFile(String data, String filePath, Context context){
File file = new File(context.getFilesDir(), filePath);
if(!file.exists()){
try{
file.createNewFile();
}catch(IOException e) {
e.printStackTrace();
Log.e("Exception", "File couldn't be created");
}
}
try {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(context.openFileOutput(filePath, Context.MODE_PRIVATE));
outputStreamWriter.write(data);
outputStreamWriter.close();
}
catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
}
我一直在谷歌搜索试图找到解决方案,但没有一个工作。它似乎在应用程序运行时起作用,因为我可以编写和读取文件,但是在重新启动应用程序时,它无法找到文件。 (file.exists()返回false)
答案 0 :(得分:1)
我只花了一个小时来追踪这个错误,事实证明这是因为在项目属性的“部署”下设置了“清除用户数据”标志。我正在将Visual Studio 2017与Android一起使用NVIDIA CodeWorks。
答案 1 :(得分:0)
我假设您正在尝试写入内部存储空间?如果没有,并且您希望访问外部存储空间,我建议您查看以下Android.com上的指南。
https://developer.android.com/guide/topics/data/data-storage.html#filesInternal
如果此是您尝试写入的内部存储,则需要确保将正确的上下文传递给该方法。例如,如果您从MainActivity类运行并且该方法包含在该类中,则您的调用将类似于:
writeToFile("一些数据"," aFile.txt", MainActivity.this )