我不知道为什么但是我的Init()函数得到了一个FileNotFoundException。
发生的事情是,当我第一次启动应用程序时,获取一个应用程序是正常的(文件不存在)。然后我按下一个调用Save的按钮,然后创建文件(如果我在outputStream.close()之后添加一个Log,我就能看到它)。我实际上试图用FileInputStream打开创建的文件,但我没有得到异常。
但是。当我关闭应用程序并再次打开它时。我得到FileNotFoundException。知道为什么吗?
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
。 Save
来自另一项活动的onPause
。希望有所帮助。