Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 客户端在使用流和lambda表达式打印字符串时卡住_Java_Lambda_Stream_Client - Fatal编程技术网

Java 客户端在使用流和lambda表达式打印字符串时卡住

Java 客户端在使用流和lambda表达式打印字符串时卡住,java,lambda,stream,client,Java,Lambda,Stream,Client,在服务器端,我有: bookDataCollection.forEach((isbnL, bookDataL) -> outputCharToNetwork.println(bookDataL.getTitle())); inputCharFromNetwork.lines().forEach(System.out::println); 将字符串发送到客户端。 我测试了它,效果很好。我想要的集合中的所有字符串都将发送到客户端 在客户端,我有: bookDataCollection.fo

在服务器端,我有:

bookDataCollection.forEach((isbnL, bookDataL) -> outputCharToNetwork.println(bookDataL.getTitle()));
inputCharFromNetwork.lines().forEach(System.out::println);
将字符串发送到客户端。
我测试了它,效果很好。我想要的集合中的所有字符串都将发送到客户端

在客户端,我有:

bookDataCollection.forEach((isbnL, bookDataL) -> outputCharToNetwork.println(bookDataL.getTitle()));
inputCharFromNetwork.lines().forEach(System.out::println);
这给我带来了麻烦。我从服务器上收到了所有书名的列表,如下所示:

唐吉诃德
2001年:太空漫游
霍比特人

光标在新行,客户机卡住了在我能看到的范围内等待着什么。
客户端的正确行是什么

添加:
inputCharNetwork
outputCharNetwork
的定义如下:

    BufferedReader inputCharNetwork = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    PrintWriter outputCharNetwork = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);

所以
lines()
正在等待另一行;怎么知道名单是完整的?我想这可能是个问题。我认为服务器应该发送一些数据发送结束的通知。事实上,流应该以这种方式工作:
lines()
正在读取,而它有一些东西(惰性操作),在终止操作执行之后-在这种情况下,
forEach()
-完成该行。那么您希望发生什么呢?你读了所有的行并打印出来。我希望客户端程序继续运行,在下一行代码中。。。当然