Les entrées et les sorties en Java (input/output) sont un concept essentiel pour pouvoir interagir avec les utilisateurs à partir d’un programme. L’entrée vous permet de lire les données des utilisateurs tandis que la sortie vous permet de les afficher.
En effet, un programme informatique se compose de trois composants principaux, à savoir : entrée, processus et sortie.
L’entrée : la valeur que nous introduisons dans le programme.
Le processus : les opérations effectuées sur les entrées pour donner un résultat.
La sortie : les résultats du traitement.
En fait, tous les langages de programmation possèdent des fonctions d’entrée et de sortie.

Nous allons apprendre à utiliser deux classes (code réutilisable) pour lire des données saisies par les utilisateurs :
1-La classe Scanner
.
2-La classe BufferReader
.
De plus, pour la sortie, Java utilise les méthodes (fonction appartenant à une classe) print()
et println()
.
En fait, pour fournir une interaction avec la console, le langage de programmation Java utilise la classe System
.
Afficher des données en java
Un objet out
est défini dans la classe System
pour créer un flux de sortie. Cet objet définit la méthode println
(ln
: line), qui vous permet d’afficher une valeur sur la console, puis de déplacer le curseur sur la ligne suivante. Toute valeur, généralement une chaîne, est transmise à la méthode pour être envoyée à la console.
print()
, est similaire à println()
sauf qu’elle ne passe pas à la ligne suivante. Cependant, vous pouvez également effectuer un retour automatique à la ligne. Pour cela, utilisez la séquence d’échappement \n
.
System.out.print("Hello world \n");
Lire des entrées avec la classe Scanner
Scanner
est une classe qui possède des méthodes pour lire des entrées utilisateurs à partir du clavier.
Pour que nous puissions utiliser la classe Scanner
, nous devons l’importer dans le code à partir du package java.util
.
import java.util.Scanner;
Pour ceux qui n’ont pas fait de programmation objet, sachez que nous pouvons créer un objet à partir d’une classe, cet objet va avoir les mêmes caractéristiques de cette classe. Pour faire court, il va hérité de cette classe. Par conséquent, l’objet pourra utiliser les variables et les fonctions de la classe.
À présent vous allez coder un peu.
Nous avons déjà expliqué que String
veut dire chaine de caractères. Quant à int
, ou integer
, veut dire un nombre entier.
Donc, ouvrez votre IDE (nous avons installé Eclipse), créez un nouveau package appelé company
.
Puis, créez une nouvelle classe EmployeeData
dans le package
.company
Copiez/Collez le code suivant, puis exécutez-le :
package company;
//Importer Scanner
import java.util.Scanner;
public class EmployeeData {
public static void main(String[] args) {
// Déclaration des variables
String nom, adresse;
int age, salaire;
// Créer un objet Scanner, keyboard
// pour lire les entrées de l'utilisateur
Scanner keyboard = new Scanner(System.in);
// Afficher un message à l'utilisateur
// Et lui demander son nom
System.out.println("### Saisissez vos données puis tapez Entrée ###");
System.out.print("Nom de l'employé : ");
// Lire ce qui a été saisi et le stocker dans la variable nom
nom = keyboard.nextLine();
// Demander de saisir l'adresse
System.out.print("Adresse : ");
// Réutiliser Scanner pour stocker l'adresse dans une variable
adresse = keyboard.nextLine();
// Demander de saisir l'âge et le stocker dans une variable
System.out.print("Âge : ");
age = keyboard.nextInt();
System.out.print("Salaire : ");
salaire = keyboard.nextInt();
// Afficher ce qui a été stocké dans les variables
System.out.println("--------------------");
System.out.println("Nom de l'employé : " + nom);
System.out.println("Adresse : " + adresse);
System.out.println("Âge : " + age + " ans");
System.out.println("Salaire : EUR " + salaire);
}
}
Il convient de noter que l’utilisation des méthodes pour récupérer des données dépend du type de données utilisées.
Par exemple, le type de données est String
, la fonction ou la méthode utilisée est nextLine()
.
De même avec d’autres types de données, Integer
utilise nextInt()
, Double
(nombres à virgule flottante) utilise nextDouble()
, etc.
Dans l’exemple ci-dessus, nous avons créé un objet nommé keyboard
de la classe Scanner. Nous appelons ensuite les méthode nextLine()
nextInt()
de la classe Scanner
pour lire l’entrée de l’utilisateur.
System.in
vous permet de lire les entrées du clavier.
Après avoir terminé, veuillez exécuter le code ci-dessus. Faites un clic droit puis sélectionnez Run As->Java Application
ou en haut dans le menu cliquez sur Run
(Si vous utilisez Eclipse).
### Saisissez vos données puis tapez Entrée ###
Nom de l'employé : Tom
Adresse : Rue ....
Âge : 35
Salaire : 3000
--------------------
Nom de l'employé : Tom
Adresse : Rue ....
Âge : 35 ans
Salaire : EUR 3000
Lire les entrée avec la classe BufferReader
BufferedReader
est une autre façon de lire une entrée de l’utilisateur, mais c’est un peu plus complexe que la classe Scanner
.
La classe BufferReader
n’est en fait pas seulement destinée à recevoir des entrées du clavier.
Cette classe peut également être utilisée pour lire les entrées des fichiers et des réseaux.
En fait, elle se trouve dans le package java.io
. Pour pouvoir utiliser la classe BufferReader
, Nous devons l’importer.
BufferedReader
peut lire les données ligne par ligne en utilisant la méthode readLine()
. En fait, elle peut accélérer les performances du code.
Créez une nouvelle classe nommée ExempleBufferReader
, qui contiendra le code suivant. N’oubliez pas de sélectionner le package.
package company;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ExempleBufferReader {
public static void main(String[] args) throws IOException {
String nom;
// Crée un objet inputstream
InputStreamReader isr = new InputStreamReader(System.in);
// Créer un objet bufferreader
BufferedReader br = new BufferedReader(isr);
// Mettre l'entrée Bufferreader dans une variable
System.out.print("Entrez votre nom: ");
nom = br.readLine();
// Afficher le contenu de la variable
System.out.println("ton nom est " + nom);
}
}
Il s’avère qu’une classe BufferReader
ne peut pas travailler seule. En fait, elle a besoin de compagnie, à savoir : la classe InputStreamReader
et la classe IOException
.
Le flux d’entrée (System.in)
est encapsulé dans la classe InputStreamReader
qui est à son tour encapsulée dans BufferedReader
. System.in
fait référence à l’entrée standard, qui est le clavier par défaut.
Essayez maintenant d’exécuter le programme, n’oubliez pas de cliquer dans la console de l’IDE avant de saisir.
Astuce : Appuyez sur Ctrl+ Espace pendant l’écriture du code pour afficher l’auto-complétion.