java清除(非关闭)输入流
我用java编写了一个服务器/客户机应用程序。现在我必须创建一个测试组件来与服务器交互。测试组件本身由一个处理客户端实例的类组成(每个实例都有一个ProcessBuilder) 现在来看问题:为了解析服务器响应(找到响应的结尾),我关闭转义序列中的特定行(例如。\t\b)。这可以按预期工作,但在向服务器发送特定命令之前,我必须清除InputStream(丢弃流中的所有内容,如日志条目、状态消息等) 但这不起作用 示例输出java清除(非关闭)输入流,java,parsing,inputstream,interactive,Java,Parsing,Inputstream,Interactive,我用java编写了一个服务器/客户机应用程序。现在我必须创建一个测试组件来与服务器交互。测试组件本身由一个处理客户端实例的类组成(每个实例都有一个ProcessBuilder) 现在来看问题:为了解析服务器响应(找到响应的结尾),我关闭转义序列中的特定行(例如。\t\b)。这可以按预期工作,但在向服务器发送特定命令之前,我必须清除InputStream(丢弃流中的所有内容,如日志条目、状态消息等) 但这不起作用 示例输出 0 [main] INFO loadtesting.ClientH
0 [main] INFO loadtesting.ClientHandler - ClientHandler started 1543748404 (localhost 9000 )
6 [main] INFO loadtesting.ClientHandler - execute: somecommand
6 [main] INFO loadtesting.ClientHandler - Skip 0 characters from process output.
112 [main] INFO loadtesting.ClientHandler - new line Connection successfully
113 [main] INFO loadtesting.ClientHandler - new line no entries available\t\b
应放弃“连接成功”
113 [main] INFO loadtesting.ClientHandler - execute: somecommand
113 [main] INFO loadtesting.ClientHandler - Skip 0 characters from process output.
114 [main] INFO loadtesting.ClientHandler - new line no entries available\t\b
114 [main] INFO Test - Test: close
114 [main] INFO loadtesting.ClientHandler - ClientHandler Closed 1543748404
114 [main] INFO loadtesting.ClientHandler - und ciao
更新
我发现了问题,但没有解决办法。这是因为InputStream的可用方法始终返回0:
类InputStream的可用方法始终返回0
现在,我将搜索IS的一个子项,该子项实现了available()。InputStream.available主要不是您所期望的。我沿着那条路走,有小费吗?您可以使用开始和结束令牌,而不仅仅是结束令牌。所以你可以在“开始”时同步,然后读到“结束”,然后丢弃中间的所有内容。
113 [main] INFO loadtesting.ClientHandler - execute: somecommand
113 [main] INFO loadtesting.ClientHandler - Skip 0 characters from process output.
114 [main] INFO loadtesting.ClientHandler - new line no entries available\t\b
114 [main] INFO Test - Test: close
114 [main] INFO loadtesting.ClientHandler - ClientHandler Closed 1543748404
114 [main] INFO loadtesting.ClientHandler - und ciao