问题描述
我想将本地进程的标准输出流式传输到 Vert.x HttpResponse。
要做到这一点,我想我必须将 java.io.InputStream
(流处理标准输出)流式传输/转换/管道到 io.vertx.core.streams.ReadStream
,然后我可以将 ReadStream
管道传输到 { {1}}。
我正在寻找一种对内存影响较小的解决方案,因此无法在内存中读取整个标准输出,然后将其刷新到 HttpResponse 中。
谢谢
解决方法
退房:
https://gist.github.com/Stwissel/a7f8ce79785afd49eb2ced69b56335de
这是我如何使用它:
InputStream is = ...
AsyncInputStream ais = new AsyncInputStream(
vertx,vertx.getOrCreateContext(),is);
ais.pipeTo(response);
,
另一种方法是使用 vertx-java.io 库中的 OutputToReadStream
类(我是作者):
new OutputToReadStream(vertx).wrap(inputStream).pipeTo(response);