0

在我的应用程序中,我必须从设置页面设​​置一个密码并将其写入文件,之后当我进入主页时,如果文件为空,我必须读取该文件,我必须进入设置页面,

用于它的代码是......

   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) { 

            }

如果密码已经设置,那么代码工作正常..但如果它是空的,它没有进入设置类......

4

3 回答 3

0

我在这里看到两个选项。首先,如果该文件不存在,您将无法通过openFileInput,因为它会引发异常。其次,您可能会得到一个不为空的空行。您应该尝试执行以下操作:

if(data==null || data.equals("")) ...
于 2013-01-10T09:04:30.027 回答
0

尝试更改您的 if 条件,例如,

if(data == null || data.equals("") || data.equals("null"))

此外,如果 File 不可用,则openFileInput()抛出FileNotFoundException

你必须添加类似的 catch 子句,

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);
}
于 2013-01-10T09:01:36.380 回答
0

我敢肯定FileNotFoundException,当您尝试读取文件时,如果文件不存在,您会得到一个。

尝试此代码以查看文件是否存在。

File file = getContext().getFileStreamPath(FILENAME1);

if(file.exists()) { ... }

于 2013-01-10T09:06:36.420 回答