2012-08-12 24 views
0

我想對使用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); 

回答

0

爲了確保Android應用程序不強制關閉,你的選擇是:一)不要做任何將導致異常,B)趕上你的例外與你自己的try/catch塊,c)安裝一個應用程序級未捕獲的異常處理程序。選項a不太可行,c不是很有用,並且基於你的代碼片段,你似乎正在嘗試b - 但是似乎還有另一個例外,你沒有抓住這一點。 logcat的內容會告訴你什麼是異常,堆棧跟蹤將導致代碼中需要try/catch的點。