Java 为什么flush()会影响PrintWriter上的println()
我有服务器的基本代码:Java 为什么flush()会影响PrintWriter上的println(),java,stream,Java,Stream,我有服务器的基本代码: ServerSocket serverSocket = new ServerSocket(14000); Socket clientSocket = serverSocket.accept(); BufferedReader in = new BufferedReader( new InputStreamReader(clientSocket.getInputStream()));
ServerSocket serverSocket = new ServerSocket(14000);
Socket clientSocket = serverSocket.accept();
BufferedReader in = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream());
String incoming;
while((incoming = in.readLine()) != null){
System.out.println("Client Says: " + incoming);
out.println("Client Says: " + incoming);
out.flush();
//if(incoming.equals("HELLO")) break;
}
clientSocket.close();
serverSocket.close();
我正试图进一步了解溪流,因为它们给我带来了一些严重的头痛。从我读到的内容来看,println方法会自动为您刷新,但是除非之后调用flush方法,否则这一行不会传递给客户机?我只是想得到一个很好的解释?要启用PrintWriter的自动刷新,其构造函数的第二个参数必须设置为true。要启用PrintWriter的自动刷新,其构造函数的第二个参数必须设置为true。我以前遇到过这个问题,只是:
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
这将带来不同。如果你不自动刷新,你可能会得到一些错误或接收数据为空,这发生在我一段时间前。致以最诚挚的问候。我以前遇到过这个问题,只是:
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
这将带来不同。如果你不自动刷新,你可能会得到一些错误或接收数据为空,这发生在我一段时间前。致以最诚挚的问候。唉,像往常一样,你会花几个小时研究一些东西,一旦你发布了问题,你就会意识到答案。PrintWriter要求将“自动刷新”设置为true。您可能希望为自己的问题编写答案并自行接受。网络应用程序不自动刷新很好。为什么不自动刷新是个好主意?刷新很昂贵。你不希望意外脸红。唉,像往常一样,你会花几个小时研究一些东西,一旦你发布了问题,你就会意识到答案。PrintWriter要求将“自动刷新”设置为true。您可能希望为自己的问题编写答案并自行接受。网络应用程序不自动刷新很好。为什么不自动刷新是个好主意?刷新很昂贵。你不想意外的脸红。