多线程聊天中PrintWriter和BufferedReader

来源:互联网 发布:计算年龄的软件 编辑:程序博客网 时间:2024/05/17 09:16
为什么要将PrintWriter与BufferedReader配合使用?

              BufferedReader可以通过以下包装从 socket 端输入流中读取一行文本、用PrintWriter而不用BufferedWriter 的原因是PrintWriter是直接将字符串写到输出流、而BufferedWriter则是将字符串写到缓冲区、如果要显示在输出端的话,必须再用BufferedReader读取之后显示出来、所以、在双向接收显示消息时、用PrintWriter和BufferedReader比较方便、或者是DataInputStream和DataOutputStream的readUTF()和writeUTF()方法。

ServerSocket serverSocket = new ServerSocket(5000);Socket socket = serverSocket.accept();//读操作BufferedReader bufferedReader = new BufferedReader( new InputStreamReader( socket.getInputStream() ) );String string = bufferedReader.readLine();System.out.println(string);//写操作PrintWriter printWriter = new PrintWriter( socket.getOutputStream() );printWriter.print("服务器发出的数据");printWriter.flush();//关闭操作printWriter.close();bufferedReader.close();socket.close();//服务器等待客户端连接  一般不关闭//serverSocket.close();