0
私はVertxを初めて使用しています。Vertxで非同期ファイルハンドラを書き込む方法
私はAPIを使って遊んでおり、FileSizeHandlerを書き込もうとしています。私はそれが正しい方法であるかどうかわかりませんが、私はあなたの意見を持っていたいと思います。私はこのようなハンドラを使用したいと思います私のコードで
:、
public class FileSizeHandler implements AsyncResult<Long> {
private boolean isSuccess;
private Throwable cause;
private Long result;
public FileSizeHandler(String filePath){
cause = null;
isSuccess = false;
result = 0L;
try {
result = Files.size(Paths.get(filePath));
isSuccess = !isSuccess;
} catch (IOException e) {
cause = e;
}
}
@Override
public Long result() {
return result;
}
@Override
public Throwable cause() {
return cause;
}
@Override
public boolean succeeded() {
return isSuccess;
}
@Override
public boolean failed() {
return !isSuccess;
}
}
ハンドラで私を悩ます私は何をしていることである。ここでは
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));
}
}
は私FileSizeHandler
クラスですそれはクラスのコンストラクタにあります。それを行うより良い方法はありますか?