2013-01-10 164 views
0

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

      } 

如果密码已经设置,然后将代码工作properly..But如果它为null,则不进入设置类...

回答

0

尝试改变你的if-condition类似的,

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

另外,如果文件不可用,则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); 
} 
0

我看到两个选项。首先,如果文件不存在,则不会通过openFileInput,因为它会引发异常。其次,你可能会得到一个空行,它不是null。你应该尝试做这样的事情:

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

我敢肯定你会得到一个FileNotFoundException如果当您尝试阅读的文件不存在。

试试这段代码,看看文件是否存在。

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

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