Java 如何在Vertx中编写异步文件处理程序

Java 如何在Vertx中编写异步文件处理程序,java,asynchronous,vert.x,Java,Asynchronous,Vert.x,我对Vertx是新手 我正在玩API,我正在尝试编写一个FileSizeHandler。我不知道这样做是否正确,但我想听听你的意见 在我的代码中,我希望使用如下处理程序: public class MyVerticle extends AbstractVerticle { @Override public void start() throws Exception { getFileSize("./my_f

我对Vertx是新手

我正在玩API,我正在尝试编写一个FileSizeHandler。我不知道这样做是否正确,但我想听听你的意见

在我的代码中,我希望使用如下处理程序:

    public class MyVerticle extends AbstractVerticle {

            @Override
            public void start() throws Exception {
                getFileSize("./my_file.txt", event -> {
                 if(event.succeeded()){
                       Long result = event.result();
                       System.out.println("FileSize is " + result);
                } else {
                     System.out.println(event.cause().getLocalizedMessage());
                }
        });

     }  

    private void getFileSize(String filepath, Handler<AsyncResult<Long>> resultHandler){
        resultHandler.handle(new FileSizeHandler(filepath));
    }
}

在处理程序中困扰我的是,我必须在类的构造函数中进行处理。有更好的方法吗

首先,您调用了类FileHandler,但它不是。这是一个结果。 在Vert.x中声明处理程序如下:

public class MyHandler implements Handler<AsyncResult<Long>> {

    @Override
    public void handle(AsyncResult<Long> event) {
        // Do some async code here
    }
}

首先,您调用了类FileHandler,但它不是。这是一个结果。 在Vert.x中声明处理程序如下:

public class MyHandler implements Handler<AsyncResult<Long>> {

    @Override
    public void handle(AsyncResult<Long> event) {
        // Do some async code here
    }
}
public class MyVerticle extends AbstractVerticle {

    @Override
    public void start() throws Exception {

        vertx.fileSystem().readFile("./my_file.txt", (f) -> {
            if (f.succeeded()) {
                System.out.println(f.result().length());
            }
            else {
                f.cause().printStackTrace();
            }
        });
    }
}