Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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清除(非关闭)输入流_Java_Parsing_Inputstream_Interactive - Fatal编程技术网

java清除(非关闭)输入流

java清除(非关闭)输入流,java,parsing,inputstream,interactive,Java,Parsing,Inputstream,Interactive,我用java编写了一个服务器/客户机应用程序。现在我必须创建一个测试组件来与服务器交互。测试组件本身由一个处理客户端实例的类组成(每个实例都有一个ProcessBuilder) 现在来看问题:为了解析服务器响应(找到响应的结尾),我关闭转义序列中的特定行(例如。\t\b)。这可以按预期工作,但在向服务器发送特定命令之前,我必须清除InputStream(丢弃流中的所有内容,如日志条目、状态消息等) 但这不起作用 示例输出 0 [main] INFO loadtesting.ClientH

我用java编写了一个服务器/客户机应用程序。现在我必须创建一个测试组件来与服务器交互。测试组件本身由一个处理客户端实例的类组成(每个实例都有一个ProcessBuilder)

现在来看问题:为了解析服务器响应(找到响应的结尾),我关闭转义序列中的特定行(例如。\t\b)。这可以按预期工作,但在向服务器发送特定命令之前,我必须清除InputStream(丢弃流中的所有内容,如日志条目、状态消息等)

但这不起作用

示例输出

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