阅读文件有问题

时间:2013-01-10 08:58:46

标签: android

在我的应用程序中,我必须从设置页面设​​置一个密码并将其写入文件,之后当我进入主页时,我必须读取该文件,如果文件为空,我必须输入到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则不进入设置类......

3 个答案:

答案 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()) { ... }