Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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 找出版商<;ByteBuffer>;从输入流_Java_Mongodb Java_Bytebuffer_Reactor_Publisher - Fatal编程技术网

Java 找出版商<;ByteBuffer>;从输入流

Java 找出版商<;ByteBuffer>;从输入流,java,mongodb-java,bytebuffer,reactor,publisher,Java,Mongodb Java,Bytebuffer,Reactor,Publisher,我刚刚升级了我的mongo db java驱动程序,现在方便的函数GridFSBucket.uploadFromStream已经没有了。因此,我们现在有了一个 GridFSUploadPublisher<ObjectId> uploadFromPublisher(String filename, Publisher<ByteBuffer> source); GridFSUploadPublisher uploadFromPublisher(字符串文件名,发布者源代码);

我刚刚升级了我的mongo db java驱动程序,现在方便的函数
GridFSBucket.uploadFromStream
已经没有了。因此,我们现在有了一个

GridFSUploadPublisher<ObjectId> uploadFromPublisher(String filename, Publisher<ByteBuffer> source);
GridFSUploadPublisher uploadFromPublisher(字符串文件名,发布者源代码);

如何将我的InputStream转换为
发布者
?java驱动程序或反应器中是否有任何utilfunction?

为了使其正常工作,可以读取流并将数据存储在
byte[]
数组中,以后可以使用
ByteBuffer.wrap(byte[])
方法对其进行包装。 我查看了旧版MongoDB驱动程序的源代码,发现流被用作实际流,所以在那个时候它并没有偷偷地转换成ByteBuffer


似乎没有方法在数据到达时对其进行流式处理,现在除了将文件加载到内存中之外没有其他方法。我知道在很多情况下这都是个问题,但也许我对这种方法有些不理解。

您到底在使用哪个库,在哪个版本中?@Progman mongodb driver reactivestreams 4.0.5是否可以选择使用mongodb driver sync 4.0.5?@Progman不,我们几个月前从mongodb driver sync中切换了所有内容,希望保持未来的可靠性