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.

Catégories : java

0 commentaire

Laisser un commentaire

Emplacement de l’avatar

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