implémentation sur la base de NIO avec utilisation API