论坛首页 Java企业应用论坛

Thread,Socket从头开始

浏览 8314 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (7) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-12-15  
sample而已,实际项目中无法使用
0 请登录后投票
   发表时间:2010-12-15  
发现楼主都是用这种形式创建流的,弱弱的问一句,这样会不会导致流没有关闭呢?
java.io.BufferedReader reader =     
                     new BufferedReader(     
                            [b]new java.io.InputStreamReader[/b](     
                                   s.getInputStream()));     
0 请登录后投票
   发表时间:2010-12-15  
例如上面[b][/b]直接的部分,只new出来了,但colse过吧。。我也不知道这样子会不会不好,呵呵
0 请登录后投票
   发表时间:2010-12-16  
yqsshr 写道
例如上面[b][/b]直接的部分,只new出来了,但colse过吧。。我也不知道这样子会不会不好,呵呵



我认为可以关闭

因为下面有 reader.close() 而 BufferedReader 的close方法是这样实现的:
public void close() throws IOException {
	synchronized (lock) {
	    if (in == null)
		return;
	    in.close();
	    in = null;
	    cb = null;
	}
    }


你看,实际上还是调用了in的close方法,所以会调用到最里面的那个对象( new java.io.InputStreamReader) 的close方法

所以可以关闭掉,楼下继续!
0 请登录后投票
   发表时间:2010-12-16  
yqsshr 写道
发现楼主都是用这种形式创建流的,弱弱的问一句,这样会不会导致流没有关闭呢?
java.io.BufferedReader reader =     
                     new BufferedReader(     
                            [b]new java.io.InputStreamReader[/b](     
                                   s.getInputStream()));     

不会有问题的,外层的关闭了会把里面的一起关闭。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics