JAVA8中使用BufferedWriter的flush()失效的原因?

程序如下:TestServer.javapackagecom.mars.tcp;importjava.io.BufferedReader;importjava.io.Bu... 程序如下:
TestServer.java
package com.mars.tcp;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;

/**
* 为何flush失效
* @author Anonymous
*
*/
public class TestServer {
public static void main(String[] args) throws IOException {
System.out.println("server");
ServerSocket server = new ServerSocket(9999);
Socket client = server.accept();

BufferedReader br = new BufferedReader(
new InputStreamReader(
client.getInputStream()));
String data = br.readLine();
System.out.println(data);

BufferedWriter bw = new BufferedWriter(
new OutputStreamWriter(
client.getOutputStream()));
bw.write("服务端响应");
bw.flush();
bw.close();
br.close();

System.out.println("服务端关闭");
client.close();
server.close();
}

}

#####################################################
TestClient.java

package com.mars.tcp;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;

public class TestClient {
public static void main(String[] args) throws IOException {
System.out.println("client");
Socket client = new Socket("localhost",9999);

String str = "客户端发送第一次";
BufferedWriter bw = new BufferedWriter(
new OutputStreamWriter(
client.getOutputStream()));
bw.write(str);
bw.flush();//为何刷新没用??
//bw.close();//换成close()就能传过去???
System.out.println("数据传出");

BufferedReader br = new BufferedReader(
new InputStreamReader(
client.getInputStream()));

String data = br.readLine();
System.out.println(data);
bw.close();
br.close();

client.close();
}

}

其它不变情况下TestClient的flush()换成close()能把字符串传过去,但会关掉Socket
展开
 我来答
人人顺风顺水
2019-04-29 · TA获得超过164个赞
知道小有建树答主
回答量:315
采纳率:77%
帮助的人:114万
展开全部
把你发送的内容加上一个换行符"\n"再测试一下
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式