Lire et écrire une entrée utilisateur en Java

1. Introduction

Dans ce rapide didacticiel, nous allons montrer plusieurs façons d'utiliser une console pour l'entrée et la sortie utilisateur en Java .

Nous examinerons quelques méthodes de la classe Scanner pour gérer les entrées, puis nous montrerons une sortie simple en utilisant System.out .

Enfin, nous verrons comment utiliser la classe Console , disponible depuis Java 6, à la fois pour l'entrée et la sortie de la console.

2. Lecture à partir de System.in

Pour nos premiers exemples, nous utiliserons la classe Scanner dans le package java.util pour obtenir l'entrée de System.in - le flux d'entrée «standard»:

Scanner scanner = new Scanner(System.in);

Nous allons utiliser la nextLine () méthode pour lire une ligne entière de l' entrée en chaîne et passer à la ligne suivante:

String nameSurname = scanner.nextLine();

Nous pouvons également utiliser la méthode next () pour obtenir le prochain jeton d'entrée du flux:

String gender = scanner.next();

Si nous attendons des entrées numériques, nous pouvons utiliser nextInt () pour obtenir l'entrée suivante en tant que primitive int , et, de même, nous pouvons utiliser nextDouble () pour obtenir une variable de type double :

int age = scanner.nextInt(); double height = scanner.nextDouble();

La classe Scanner propose également des méthodes hasNext_Prefix () qui retournent true si le jeton suivant peut être interprété comme un type de données correspondant .

Par exemple, nous pouvons utiliser hasNextInt ()méthode pour vérifier si le jeton suivant peut être interprété comme un entier:

while (scanner.hasNextInt()) { int nmbr = scanner.nextInt(); //... }

De plus, nous pouvons utiliser la méthode hasNext (Pattern pattern) pour vérifier si le jeton d'entrée suivant correspond à un modèle :

if (scanner.hasNext(Pattern.compile("www.baeldung.com"))) { //... }

Outre l'utilisation de la classe Scanner , nous pouvons également utiliser un StreamReader d' entrée avec System.in pour obtenir l'entrée de la console :

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

Et puis nous pouvons lire l'entrée et l'analyser en un entier:

int i = Integer.parseInt(buffReader.readLine()); 

3. Ecriture sur System.out

Pour la sortie de la console, nous pouvons utiliser System.out - une instance de la classe PrintStream , qui est un type de OutputStream .

Dans notre exemple, nous utiliserons la sortie de la console pour fournir une invite d'entrée utilisateur et afficher un message final à un utilisateur.

Nous allons utiliser la println () méthode pour imprimer une chaîne et mettre fin à la ligne :

System.out.println("Please enter your name and surname: ");

Alternativement, nous pouvons utiliser la méthode print () , qui fonctionne de la même manière que println () , mais sans terminer la ligne :

System.out.print("Have a good"); System.out.print(" one!");

4. Utilisation de la classe de console pour l'entrée et la sortie

Dans JDK 6 et versions ultérieures, nous pouvons utiliser la classe Console du package java.io pour lire et écrire sur la console.

Pour obtenir un objet Console , nous appellerons System.console () :

Console console = System.console();

Ensuite, utilisons la méthode readLine () de la classe Console pour écrire une ligne dans la console, puis lisons une ligne depuis la console :

String progLanguauge = console.readLine("Enter your favourite programming language: "); 

Si nous avons besoin de lire des informations sensibles, telles qu'un mot de passe, nous pouvons utiliser la méthode readPassword () pour demander à un utilisateur un mot de passe et lire le mot de passe depuis la console avec l'écho désactivé :

char[] pass = console.readPassword("To finish, enter password: "); 

Nous pouvons également utiliser la classe Console pour écrire la sortie sur la console, par exemple, en utilisant la méthode printf () avec un argument String :

console.printf(progLanguauge + " is very interesting!"); 

5. Conclusion

Dans cet article, nous avons montré comment utiliser plusieurs classes Java pour effectuer des entrées et des sorties utilisateur de la console.

Comme toujours, les exemples de code de ce didacticiel sont fournis sur GitHub.