Using AsynchronousFileChannel and CompletionHandler to read a file
import java.nio.ByteBuffer;
import java.nio.channels.AsynchronousFileChannel;
import java.nio.channels.CompletionHandler;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Test {
public static void main(String[] args) throws Exception {
Path file = Paths.get("/usr/a/foobar.txt");
AsynchronousFileChannel channel = AsynchronousFileChannel.open(file);
ByteBuffer buffer = ByteBuffer.allocate(100_000);
channel.read(buffer, 0, buffer,
new CompletionHandler<Integer, ByteBuffer>() {
public void completed(Integer result, ByteBuffer attachment) {
System.out.println("Bytes read [" + result + "]");
}
public void failed(Throwable exception, ByteBuffer attachment) {
System.out.println(exception.getMessage());
}
});
}
}
Related examples in the same category