diz*_*iaq 5 java project-reactor spring-webflux
有一个Flux<DataBuffer>. 将其转换为 的自然方式是什么Mono<byte[]>?
Mono<byte[]> mergeDataBuffers(Flux<DataBuffer> flux){
// ?
}
Run Code Online (Sandbox Code Playgroud)
Phi*_*lay 19
用于org.springframework.core.io.buffer.DataBufferUtils将 DataBuffers 从 加入Flux<DataBuffer>到单个 中DataBuffer,然后将该缓冲区读入字节数组。
Mono<byte[]> mergeDataBuffers(Flux<DataBuffer> dataBufferFlux) {
return DataBufferUtils.join(dataBufferFlux)
.map(dataBuffer -> {
byte[] bytes = new byte[dataBuffer.readableByteCount()];
dataBuffer.read(bytes);
DataBufferUtils.release(dataBuffer);
return bytes;
});
}
Run Code Online (Sandbox Code Playgroud)
执行此操作时请务必考虑内存使用情况,因为此方法会将所有数据加载到内存中两次(一次在 DataBuffer 中,然后在复制到 中时再次加载byte[])。
| 归档时间: |
|
| 查看次数: |
15038 次 |
| 最近记录: |