devstory

Le Tutoriel de Java Channel

  1. Channel
  2. Interfaces and Classes
  3. Examples

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.
La liste des classes qui implémentent l'interface Channel:

3. Examples

Si vous commencez à apprendre sur Java Channel, veuillez continuer avec ReadableByteChannel et WritableByteChannel pour trouver les premiers exemples.