我省略了代码的无关部分:
[...]
try {
URL url = new URL(updateUrl);
BufferedReader input = new BufferedReader(new InputStreamReader(url.openStream()));
[...]
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
} finally {
input.close();
}
[...]
问题在于,在最终的“ input.close()”上,Eclipse表示“输入无法解析”。
我认为这可能是一个范围问题,但是我从其他人那里看到过代码,并且通常具有相同的形式,因此我不知道为什么它在这里不起作用。
有什么提示吗?
提前多谢
最佳答案
确实是范围错误。
您的input
在try
块内声明,因此在finally
块内看不到。在外部声明它,以便它们都可见,并且您应该没问题:
[...]
BufferedReader input = null;
try {
URL url = new URL(updateUrl);
input = new BufferedReader(new InputStreamReader(url.openStream()));
[...]
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
} finally {
if (input != null)
{
try {
input.close();
}
catch (IOException exc)
{
exc.printStackTrace();
}
}
}
[...]
关于java - 最终尝试关闭Android BufferedReader实例时无法解决,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11359305/