Java createDirectory()真的是非阻塞文件吗?
我创建了这样的方法:Java createDirectory()真的是非阻塞文件吗?,java,nio,project-reactor,Java,Nio,Project Reactor,我创建了这样的方法: Flux<GetObjectResponse> download(String bucket, List<String> s3FileNames) { String tmpDirName = UUID.randomUUID().toString(); Path dir = Paths.get(tmpDirName); if (!Files.exists(dir)) { try { Fil
Flux<GetObjectResponse> download(String bucket, List<String> s3FileNames) {
String tmpDirName = UUID.randomUUID().toString();
Path dir = Paths.get(tmpDirName);
if (!Files.exists(dir)) {
try {
Files.createDirectory(dir);
} catch (IOException e) {
e.printStackTrace();
}
}
return Flux.fromIterable(s3FileNames)
.flatMap(filename -> Mono.just(GetObjectRequest.builder().bucket(bucket).key(filename).build()))
.flatMap(getObjectRequest -> Mono.fromFuture(s3AsyncClient.getObject(getObjectRequest, Paths.get(tmpDirName, getObjectRequest.key()))));
}
IntelliJ是对的吗?当与文件进行互操作时,NIO是否会阻塞?NIO2之前的所有文件操作都是同步的,您可以假定在方法返回时操作已经完成。 只有TCP套接字和文件监视程序具有异步操作 NIO2添加了
AsynchronousFileChannel
,但它不适用于目录
文档:我不希望这样的调用是异步的。为什么会这样?创建文件夹时,通常的期望是该文件夹将立即可用于向其中添加文件。
Inappropriate blocking method call less... (Ctrl+1)
Inspection info: Reports thread-blocking method calls found in a code fragment where a thread should not be blocked