相关疑难解决方法(0)

Java资源关闭

我正在编写一个连接到网站并从中读取一行的应用程序.我是这样做的:

try{
        URLConnection connection = new URL("www.example.com").openConnection();
        BufferedReader rd = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String response = rd.readLine();
        rd.close();
    }catch (Exception e) {
        //exception handling
    }
Run Code Online (Sandbox Code Playgroud)

好吗?我的意思是,我在最后一行关闭了BufferedReader,但我没有关闭InputStreamReader.我应该从connection.getInputStream创建一个独立的InputStreamReader,还是从独立的InputStreamReader创建一个BufferedReader,而不是关闭所有两个读者?我认为最好将结束方法放在finally块中,如下所示:

InputStreamReader isr = null;
BufferedReader br = null;
try{
    URLConnection connection = new URL("www.example.com").openConnection();
    isr = new InputStreamReader(connection.getInputStream());
    br = new BufferedReader(isr);
    String response = br.readLine();
}catch (Exception e) {
    //exception handling
}finally{
    br.close();
    isr.close();
}
Run Code Online (Sandbox Code Playgroud)

但它很难看,因为关闭方法可以抛出异常,所以我必须处理或抛出它.

哪种解决方案更好?或者什么是最好的解决方案?

java url exception-handling inputstream

9
推荐指数
1
解决办法
7877
查看次数

标签 统计

exception-handling ×1

inputstream ×1

java ×1

url ×1