spring-webflux 中的非阻塞文件操作

Non-blocking file operations in spring-webflux

我需要编写一些代码来管理 spring-webflux 服务的文件。第一直觉是使用 File/Files,它在常规应用程序中工作正常,但它们会阻塞。

所以,我用谷歌搜索了我想象中的大部分标准,但所有结果大多与 uploading/downloading 个文件相关。

我的问题是 - 在 spring-webflux 下有没有什么方法可以以非阻塞方式管理文件(删除、复制、移动)?甚至是第 3 方库?

Java NIO(新 IO)是替代 IO API for Java,意思是替代标准 Java IO 和 Java Networking API的。 NIO API 的一部分实际上是阻塞的——例如文件 APIs - 所以标签“Non-blocking”会有点误导。

尽管如此,Java NIO 使您能够进行 non-blocking IO。例如,线程可以请求通道将数据读入缓冲区。当通道将数据读入缓冲区时,线程可以做其他事情。一旦数据被读入缓冲区,线程就可以继续处理它。向通道写入数据也是如此。

您可以在以下位置阅读更多相关信息: