Android 重新启动应用程序时FileNotFoundException
我不知道为什么,但我从Init()函数中得到了一个FileNotFoundException 发生的事情是,当我第一次启动应用程序时,得到一个应用程序是正常的(文件不存在)。然后我按下一个按钮调用Save并创建文件(如果我在outputStream.close()之后添加一个日志,我就能看到它)。实际上,我试图用FileInputStream打开创建的文件,但没有得到异常 但是。当我关闭应用程序并再次打开它时。我得到了FileNotFoundException。知道为什么吗Android 重新启动应用程序时FileNotFoundException,android,fileinputstream,fileoutputstream,Android,Fileinputstream,Fileoutputstream,我不知道为什么,但我从Init()函数中得到了一个FileNotFoundException 发生的事情是,当我第一次启动应用程序时,得到一个应用程序是正常的(文件不存在)。然后我按下一个按钮调用Save并创建文件(如果我在outputStream.close()之后添加一个日志,我就能看到它)。实际上,我试图用FileInputStream打开创建的文件,但没有得到异常 但是。当我关闭应用程序并再次打开它时。我得到了FileNotFoundException。知道为什么吗 public cla
public class MyClass {
public static Context mContext ;
public static void Save(){
String test = "test" ;
FileOutputStream outputStream;
try {
outputStream = mContext.openFileOutput(FILENAME, Context.MODE_PRIVATE);
outputStream.write(test.getBytes());
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void Init(Context c){
mContext = c ;
FileInputStream inputStream;
try {
inputStream = c.openFileInput(FILENAME);
String test = "";
char ch ;
while((ch=(char) inputStream.read())!=-1)
test+= ch ;
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
编辑:
因此,这些调用不是在活动中,而是在静态类中
Init
是从我的主要活动的onCreate
调用的<代码>保存是从另一个活动的onPause
调用的。希望对您有所帮助。如果您的活动不是太大,请显示完整的代码,可能问题出在其他地方…@opiatefuch希望编辑帮助您应该为Save()提供自己的上下文,如Save(context context)。不要生成void函数,而是让它们返回布尔值true/false,以便调用者知道一切是否顺利。此外,您还可以使用file file file=new file(fileName)避免文件未找到异常;如果(!file.exists())返回false代码>。事实上,我并不是真的试图避免这个异常,而是想了解为什么我会得到它(为什么我的文件找不到,它应该在这里)