Java Reading Console Input

Il y a des moments où il est important pour vous d’obtenir les entrées des utilisateurs pour l’exécution des programmes. Pour ce faire, vous avez besoin des méthodes de saisie de la console de lecture Java.

Méthodes de saisie de la console de lecture Java

  1. Utilisation de la classe BufferedReader
  2. Utilisation de la classe Scanner
  3. Utilisation de la classe Console

Maintenant, examinons de près ces méthodes une par une.

Utilisation de la classe BufferedReader

C’est la plus ancienne technique en Java utilisée pour lire l’entrée de la console. Cette technique a été introduite pour la première fois dans le JDK 1.0. En utilisant cette technique, nous devons envelopper InputStreamReader et System.in dans la classe BufferedReader.

Cela se fait en utilisant la syntaxe suivante:

BufferedReader br = new BufferedReader (new InputStreamReader (System.in));

L’utilisation de cette méthode permettra de lier le flux basé sur les caractères ‘br’ à la console pour une entrée via System.in.

NOTE : lors de l’utilisation de BufferedReader une IOException doit être lancée sinon un message d’erreur sera affiché au moment de la compilation.

La classe BufferedReader est définie dans java.io donc pour utiliser la classe BufferedReader vous devez d’abord importer java.io.

Regardons un exemple pour rendre le concept plus clair.

Dans cet exemple, nous allons obtenir une chaîne de caractères saisie par l’utilisateur. Le programme va afficher les caractères un par un à l’utilisateur sur l’écran. Il continuera jusqu’à ce que le caractère de terminaison soit rencontré dans la chaîne.

// Program to read a string using BufferedReader class.import java.io.*;class bread{ public static void main(String args) throws IOException { char ch; BufferedReader br = new BufferedReader(new InputStreamReader (System.in)); System.out.println ("Enter any string of your choice (To terminate Press \'z\' "); do { ch = (char) br.read (); System.out.println (ch); } while (ch != 'z'); }}

Sortie 1

Java Lecture de la console

Ici, lorsque z est rencontré dans la chaîne de caractères, le programme arrête d’afficher tout autre caractère saisi par l’utilisateur.

Sortie 2

Lecture de l'entrée de la console en sortie Java

Utilisation de la classe Scanner

La classe Scanner a été introduite dans le JDK 1.5 et elle a été largement utilisée depuis. La classe Scanner fournit diverses méthodes pour faciliter la façon dont nous obtenons des entrées à partir de la console. La classe Scanner est définie dans java.util donc vous devez d’abord l’importer.

Le Scanner utilise également System.in et sa syntaxe est la suivante :

Scanner obj_name = new Scanner (System.in);

Certaines des méthodes utilitaires que la classe Scanner fournit sont les suivantes :

hasNext() Elle renvoie une valeur booléenne selon qu’un token quelconque est disponible ou non. Il renvoie une valeur true si un token est disponible. Sinon, il retournera une valeur false.
hasNextInt() Il retourne une valeur true si une valeur int est en cours de lecture. Sinon, il retournera une valeur fausse.
hasNextFloat() Il retourne un true si une valeur float est en cours de lecture. Else it will return a false value.
hasNextBoolean() Il renvoie un true si une valeur booléenne est en cours de lecture. Sinon, il renvoie une valeur false.
next() Il lit le jeton suivant sous forme de String.
nextLine() Il lit la ligne d’entrée suivante sous forme de String.
nextInt() Il lit la prochaine valeur d’entrée sous forme d’un nombre entier.
nextDouble() Il lit la prochaine valeur d’entrée comme une valeur double.

Regardons un exemple pour mieux comprendre le concept. Dans cet exemple, nous allons lire des nombres d’un utilisateur et trouver la somme de ces nombres et lui afficher le résultat.

// Program to calculate the sum of n numbers using Scanner classimport java.util.*;class scanner_eg{ public static void main(String args) { Scanner obj = new Scanner (System.in); double total = 0; System.out.println ("Enter numbers to add. Enter any string to end list."); while (obj.hasNext()) { if (obj.hasNextDouble()) { total += obj.nextDouble(); } else { break; } } System.out.println ("Sum of the numbers is " + total); }}

Sortie

NOTE : – Chaque fois que nous utilisons la méthode next, au moment de l’exécution, elle cherchera toujours l’entrée qu’elle définit. Si une telle entrée n’est pas disponible, alors elle lancera une exception. Par conséquent, il est toujours bénéfique de vérifier l’entrée au préalable en utilisant la méthode hasNext avant d’appeler la méthode next.

Utilisation de la classe Console

C’est une autre façon de lire l’entrée de l’utilisateur à partir de la console en Java. Cette façon de lire les entrées utilisateur a été introduite dans le JDK 1.6. Cette technique utilise également System.in pour la lecture de l’entrée.

Cette technique est plus adaptée à la lecture de l’entrée qui ne nécessite pas d’écho de l’entrée utilisateur comme la lecture des mots de passe de l’utilisateur. Cette technique lit les entrées de l’utilisateur sans faire écho aux caractères saisis par l’utilisateur.

La classe Console est définie dans la classe java.io qui doit être importée avant d’utiliser la classe console.

Voyons un exemple.

import java.io.*;class consoleEg{ public static void main(String args) { String name; System.out.println ("Enter your name: "); Console c = System.console(); name = c.readLine(); System.out.println ("Your name is: " + name); }}

Sortie

utilisant la classe console

NOTE : – Le seul inconvénient de cette technique est qu’elle fonctionne dans des environnements interactifs et qu’elle ne fonctionne pas dans un IDE.

En Java, nous pouvons lire l’entrée de la console de trois façons, c’est-à-dire en utilisant la classe BufferedReader, la classe Scanner et la classe Console en Java. Selon la façon dont vous voulez lire l’entrée utilisateur, vous pouvez l’implémenter dans vos programmes.

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *