在我的应用程序中,我必须从设置页面设置一个密码并将其写入文件,之后当我进入主页时,我必须读取该文件,如果文件为空,我必须输入到settinngs页,
用于它的代码是.....
try {
System.out.println("Enter try block!!!");
FileInputStream fis = openFileInput(FILENAME1);
InputStreamReader in = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(in);
data = br.readLine();
System.out.println("data from settings file"+data);
System.out.println("-------1Data Read From File is:1" + data);
if(data.equals(null))
{
Toast.makeText(getApplicationContext(), "You have to set a password", Toast.LENGTH_SHORT).show();
Intent in1 = new Intent();
in1.setClass(getApplicationContext(), SetteingsPage.class);
startActivity(in1);
}
} catch (Exception e) {
}
如果密码已经设置,那么代码工作正常..但如果它为null则不进入设置类......
答案 0 :(得分:0)
尝试更改您的if条件,例如
if(data == null || data.equals("") || data.equals("null"))
此外,如果文件不可用,则openFileInput()
会抛出FileNotFoundException
你必须添加类似的子句,
catch (FileNotFoundException e) {
Toast.makeText(getApplicationContext(), "You have to set a password", Toast.LENGTH_SHORT).show();
Intent in1 = new Intent();
in1.setClass(getApplicationContext(), SetteingsPage.class);
startActivity(in1);
}
答案 1 :(得分:0)
我在这里看到两个选项。首先,如果文件不存在,则不会超过openFileInput
,因为它会抛出异常。其次,您可能会得到一个空行,该行不为空。你应该尝试做类似的事情:
if(data==null || data.equals("")) ...
答案 2 :(得分:0)
我很确定如果您尝试阅读该文件时文件不存在,您将获得FileNotFoundException
。
尝试使用此代码查看文件是否存在。
File file = getContext().getFileStreamPath(FILENAME1);
if(file.exists()) { ... }