如何防止在使用openFileInput找不到文件时崩溃android应用程序

问题描述:

我想对使用FileInputStream找不到文件的情况做出反应。当我运行一个加载不存在的文件的应用程序时,它将打开一个强制关闭的Android弹出窗口。我想通过在文本视图中更改文本并说没有找到该文件来应对这种情况。我试着改变异常来改变文本视图,并显示文件没有找到,应用程序仍然崩溃。如何防止在使用openFileInput找不到文件时崩溃android应用程序

下面是一段代码:

FileInputStream fis = null; 
    String collected = null; 
    try { 
     fis = openFileInput("test"); 
     byte[] dataArray = new byte[fis.available()]; 
     while (fis.read(dataArray) != -1){ 
      collected = new String(dataArray); 
     } 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 

     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    }finally{ 
     try { 
      fis.close(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 


    tv.setText(collected); 

为了确保Android应用程序不强制关闭,你的选择是:一)不要做任何将导致异常,B)赶上你的例外与你自己的try/catch块,c)安装一个应用程序级未捕获的异常处理程序。选项a不太可行,c不是很有用,并且基于你的代码片段,你似乎正在尝试b - 但是似乎还有另一个例外,你没有抓住这一点。 logcat的内容会告诉你什么是异常,堆栈跟踪将导致代码中需要try/catch的点。