0

我想对使用 FileInputStream 找不到文件的情况做出反应。当我运行一个加载不存在的文件的应用程序时,它会打开一个强制关闭的 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);
4

1 回答 1

0

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

于 2012-08-12T11:45:44.273 回答