PrintWriter out = new PrintWriter(DoDSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(DoDSocket.getInputStream()));
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String fromServer;
String fromUser;
while ((fromServer = in.readLine()) != null)
{
System.out.println(fromServer);
if ((fromUser= stdIn.readLine()) != null)
{
//System.out.println(fromUser);
out.println(fromUser);
}
}
在客户端的这段代码中,我创建了一个打印写入器和一个与服务器通信的缓冲读取器,我还有一个单独的读取器,它从命令行读取 System.in。
我目前的问题是,如果服务器向客户端发送多行字符串,我将必须按 Enter 才能接收每一行。如何编辑此代码,以便在检查用户输入的内容之前从服务器的缓冲读取器打印每一行,而不是在每一行之后进行检查?
最佳答案
为什么不一个接一个地循环呢?:
PrintWriter out = new PrintWriter(DoDSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(DoDSocket.getInputStream()));
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String fromServer;
String fromUser;
while ((fromServer = in.readLine()) != null)
{
System.out.println(fromServer);
}
while ((fromUser = stdIn.readLine()) != null)
{
System.out.println(fromUser);
}
关于java - 在检查另一个 BufferedReader 之前,如何打印一个 BufferedReader 中可用的每一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22734605/