Le Tutoriel de Java Channel
1. Channel
Channel est une interface du package java.nio.channels - un composant important de Java New IO (Java NIO). Comme nous le savons, Java NIO a été introduit pour la première fois à partir de Java 1.4 comme alternative à Java IO traditionnel dans le but d'améliorer les performances du programme.
Le Channel représente une connexion ouverte à une entité, telle qu'un périphérique matériel, un file, un socket ou des composants de programme, capable d'effectuer des opérations d'IO(Input/Output). En général, pour lire ou écrire des données sur un appareil IO avec Java NIO, vous devez ouvrir un Channel.
- En cas de la lecture de données à partir des appareils IO : les données seront lues du Channel dans le Buffer, il vous suffit de manipuler le Buffer pour traiter les données.
- En cas d'écriture de données sur un appareil IO: il faut écrire des données dans le Buffer, elles seront ensuite transférées sur le Channel et écrites sur un appareil IO.
Buffer agit comme un conteneur de données temporaire avec une capacité fixe, donc pour lire ou écrire toutes les données sur l'apparil IO, il faut manipuler le Buffer à plusieurs reprises.
Channel vs Stream
En règle générale, le concept de Channel (canal) dans Java NIO est similaire au concept de Stream (flux) dans Java IO, mais il existe quelques différences :
- Vous pouvez à la fois lire et écrire sur un Channel. Pourtant, avec Stream, pour lire, vous avez besoin d'un InputStream, pour écrire, vous avez besoin d'un OutputStream.
- Le Channel peut être lu et écrit de manière asynchrone.
- Le Channel et le Buffer sont connectés l'un a l'autre. Il vous suffit de manipuler le Buffer pour traiter les données lues depuis le Channel et de manipuler le Buffer pour écrire les données dans le Channel.
2. Interfaces and Classes
La hiérarchie de l'interface dans le package java.nio.channels.
- Buffer
- Selector
- AsynchronousChannel
- AsynchronousByteChannel
- ReadableByteChannel
- ScatteringByteChannel
- InterruptibleChannel
- ByteChannel
- SelectableChannel
- WritableByteChannel
- GatheringByteChannel
- NetworkChannel
- MulticastChannel
La liste des classes qui implémentent l'interface Channel:
- SocketChannel
- DatagramChannel
- ServerSocketChannel
- AsynchronousSocketChannel
- AsynchronousServerSocketChannel
- FileChannel
- AsynchronousFileChannel
- SelectableChannel
- Pipe.SinkChannel
- Pipe.SourceChannel
- SctpChannel
- SctpMultiChannel
- SctpServerChannel
Tutoriels de Java New IO
- Le Tutoriel de Java ReadableByteChannel
- Le Tutoriel de Java WritableByteChannel
- Le Tutoriel de Java Pipe.SinkChannel
- Le Tutoriel de Java Pipe.SourceChannel
- Le Tutoriel de Java ScatteringByteChannel
- Le Tutoriel de Java GatheringByteChannel
- Le Tutoriel de Java Buffer
- Le Tutoriel de Java DatagramChannel
- Le Tutoriel de Java Channel
Show More