Giriş
Şu satırı dahil ederiz.
read(), write() gibi işlemlerden sonra CompletionHandler'ın çalışmasını sağlar.
open metodu
Örnek
Şöyle yaparız.
Şöyle yaparız.
read metodu
Şöyle yaparız.
Şöyle yaparız. 3. parametre olan Attachment null veriliyor.
Şu satırı dahil ederiz.
import java.nio.channels.AsynchronousFileChannel;
import java.nio.channels.CompletionHandler;
Bu sınıfın kardeşi FileChannel sınıfıdır.read(), write() gibi işlemlerden sonra CompletionHandler'ın çalışmasını sağlar.
open metodu
Örnek
Şöyle yaparız.
Path somePath = Paths.get("test.txt");
AsynchronousFileChannel channel = AsynchronousFileChannel.open(somePath,
StandardOpenOption.READ);
ÖrnekŞöyle yaparız.
String name = "delete.me";
Path path = new File(name).toPath();
AsynchronousFileChannel fc = AsynchronousFileChannel.open(path,
StandardOpenOption.CREATE_NEW, StandardOpenOption.DELETE_ON_CLOSE ,
StandardOpenOption.READ, StandardOpenOption.WRITE,
StandardOpenOption.WRITE, StandardOpenOption.SYNC);
read metodu
Şöyle yaparız.
ByteBuffer buf = ...;
channel.read(buf, 0, null, new CompletionHandler<Integer, Object>() {
@Override
public void completed(Integer bytesRead, Object attachment) {
...
}
@Override
public void failed(Throwable exc, Object attachment) {
...
}
});
write metodu
Şöyle yaparız. 3. parametre olan Attachment null veriliyor.
AtomicLong position = new AtomicLong(0);
AsynchronousFileChannel fc = ...;
CompletionHandler<Integer, Object> handler =
new CompletionHandler<Integer, Object>() {
@Override
public void completed(Integer result, Object attachment) {
position.getAndAdd(result);
}
@Override
public void failed(Throwable e, Object attachment) {
e.printStackTrace();
}
};
ByteBuffer bb = ...;
fc.write(bb,position.get(),null,handler);
Hiç yorum yok:
Yorum Gönder