黑马程序员技术交流社区

标题: 关于IO流的关闭问题。 [打印本页]

作者: 阿阿阿阿兵    时间: 2017-5-25 11:40
标题: 关于IO流的关闭问题。
大神看过来!TCP传输中的服务端和客户端分别都有三个流,为啥最后都只关闭一个流
public class UploadServer {
        public static void main(String[] args) throws Exception {
                System.out.println("上传服务端。。。。");
               
                //1
                ServerSocket ss = new ServerSocket(10088);
               
                //2
                Socket s = ss.accept();
               
                System.out.println(s.getInetAddress().getHostAddress()+"...connected");
               
                //3
                BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
               
                //4
                BufferedWriter bufw = new BufferedWriter(new FileWriter("C:/123.txt"));
                String line = null;
                while((line = bufIn.readLine())!= null){
                        bufw.write(line);
                        bufw.newLine();
                        bufw.flush();
                }
               
                PrintWriter out = new PrintWriter(s.getOutputStream(),true);
                out.println("上传成功");
               
                bufw.close();
               
                s.close();
                ss.close();
        }
}
public class UploadClient {
        public static void main(String[] args) throws Exception {
                System.out.println("上传客户端。。。。");
                File file = new File("D:/123.txt");
                System.out.println(file.exists());
               
                //1
                Socket s = new Socket("localhost",10088);
               
                //2
                BufferedReader bufr = new BufferedReader(new FileReader(file));
               
                //3
                PrintWriter out = new PrintWriter(s.getOutputStream(),true);
               
                String line = null;
                while((line = bufr.readLine()) != null){
                        out.println(line);
                }
               
                //告诉服务端,客户端写完了
                s.shutdownOutput();
               
                //4
                BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
                String str = bufIn.readLine();
                System.out.println(str);
               
                bufr.close();
                s.close();
        }
}
作者: 阿阿阿阿兵    时间: 2017-5-25 11:45
大神们帮看看啊
作者: 阿阿阿阿兵    时间: 2017-5-25 11:55
自己顶一下

作者: 烽火狼烟    时间: 2017-5-25 23:55
因为另外两个流是最便捷的实现




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