我在編寫我的應用程序時遇到了相當麻煩。這是我的問題:正在初始化Try/Catch
我試圖初始化像這樣的文件輸入流:
FileInputStream fis
fis = openFileInput(selectedFile);
再後來就把這1行:
byte[] input = new byte[fis.available()];
問題是代碼的兩個位需要嘗試/ catch語句,第二個塊無法識別fis,因爲它是在try/catch中初始化的。這裏是我的代碼:
private void openFile(String selectedFile) {
String value = "";
FileInputStream fis;
try {
fis = openFileInput(selectedFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
byte[] input = new byte[fis.available()];
} catch (IOException e) {
e.printStackTrace();
}
我該怎麼辦? (在此先感謝)
初始化FIS到臨時值(如果你嘗試'null'它會工作)。事情是,這就是程序應該如何工作。 –
在try/catch之外聲明變量,或者捕獲這兩個異常。 –
您嘗試打開該文件,如果失敗,則只打印堆棧跟蹤並嘗試繼續......這將產生一個NPE。讓你的'openFile()'方法至少拋出'IOException'! – fge