黑马程序员技术交流社区

标题: 网络编程客户端,流的关闭操作 [打印本页]

作者: 紫幻随影-缪    时间: 2014-4-20 19:26
标题: 网络编程客户端,流的关闭操作
本帖最后由 紫幻随影-缪 于 2014-4-21 12:28 编辑

/*以下是网络编程,客户端的代码,今天在看视频时,跟着视频写的,我想问下在最后关闭流操作时,为什么bw和brServer这两个流不用关闭,请高手解释下原因!*/

import java.io.*;
import java.net.*;

public class Client {

        public static void main(String[] args) throws IOException {
                Socket s=new Socket("192.168.0.1",12345);
                //客户端从键盘读取数据
                BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
                BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
                //定义一个流接收服务器端反馈的数据
                BufferedReader brServer=new BufferedReader(new InputStreamReader(s.getInputStream()));
                //将数据录入到服务器端
                String line=null;
                while((line=br.readLine())!=null){
                        if("over".equals(line)){
                                break;
                        }
                        bw.write(line);
                        //读取服务器端的反馈数据
                        String serverText=brServer.readLine();
                        System.out.println("server:"+serverText);
                }
                br.close();
                s.close();
                //bw.close();
                //brServer.close();
        }
}




作者: 月光海    时间: 2014-4-20 20:40
  1. BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
  2.                 //定义一个流接收服务器端反馈的数据
  3.                 BufferedReader brServer=new BufferedReader(new InputStreamReader(s.getInputStream()));
复制代码
看这两句话,这两个流是从Socket流中获取的,当Socket建立成功后就有了一个Socket流,里面有读取流,有写入流,你下面已经对Socket流进行关闭,自然这样两个获取的流也会被关闭,因此,就不用关了
作者: の放下执著    时间: 2014-4-20 21:00
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));这个流是键盘录入,字节流转向字符流,流向:键盘--->内存。
BufferedReader brServer=new BufferedReader(new InputStreamReader(s.getInputStream()));这个是socket流的输入流,流向:服务器端--->客户端。
其实流,就像水管,想要关水时,我们一般都是在水的流入端关闭,总不能在水的输出端把水管给堵住吧;流也一样,一般在数据的流入端关闭,而这里是流数据的接收端。
个人理解,嘿嘿!





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2