如何解决从ServerRequest中提取InputStream
我一直想从System.out.println(012):
(2 * 8 ^ 0) + (1 * 8 ^ 1) = 10
12 = 2*8^0 + 1*8^1 ---> 10
System.out.println(0123)
(3 * 8 ^ 0) + (2 * 8 ^ 1) + (1 * 8 ^ 2) = 83
123 = 3*8^0 + 2*8^1 + 1*8^2 ---> 83
正文中提取inputStream,但无济于事。到目前为止,我已经尝试了一些在这里和其他地方找到的方法,并最终又遇到了相同的问题,即->
给出以下摘录:
我通过检查得到了这个inputStream,这显然是不正确的:
在我看来,是否可以使用reactive.function.server.ServerRequest
或其他任何对象来实现这种转换?
解决方法
DataBuffer
本身可以完成这项工作。它具有asInputStream
方法。
但是,您可能会问错一个问题:
几乎所有的InputStreams,当然还有来自网络连接的输入流,从根本上讲都是一个阻塞的概念,而您正在使用反应式,这意味着如果您阻塞,您的代码将被破坏。
换句话说,根据一般经验,“我使用反应式!”和“我想要输入流!”是互斥的。您..不需要输入流。
如果必须,您需要一点奇特的独角兽:一个InputStream,保证它不会阻塞。实际上,只有一种方法可以创建这样的野兽,那就是将ALLLLL数据泵入内存(希望它不是特别大量的数据!),然后生成一个仅提供已经加载到内存中的字节的inputstream:流不会阻塞。 ByteArrayInputStream
是此类流的一个示例。大概是DataBuffer的asInputStream
方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。