我在编写我的应用程序时遇到了相当麻烦。这是我的问题:正在初始化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