如何从InputStream创建一个Vert.x ReadStream

5
我想将本地进程的标准输出流传输到 Vert.x 的 HttpResponse。为了实现这个目的,我认为需要将一个 java.io.InputStream(管道化进程的标准输出流)流转换成 io.vertx.core.streams.ReadStream,然后可以将 ReadStream 管道化到 HttpResponse。我正在寻找一个内存占用小的解决方案,因此不可能将整个 stdout 读入内存,然后刷新到 HttpResponse 中。谢谢。

1
不确定您试图通过这样做实现什么目的。ReadStream代表大量但有限的数据。System.out是一个无限流。结果将导致您的HttpResponse永远不会关闭。 - Alexey Soshin
1
我认为 OP 想要启动一个进程(例如通过 ProcessBuilder),并将输出导向 HttpResponse,而不是将 System.out 导向 HttpResponse。 - Selim
2个回答

3

2

另一种方式是使用vertx-java.io库中的OutputToReadStream类(我是作者):

new OutputToReadStream(vertx).wrap(inputStream).pipeTo(response);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接