为什么要将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();