0Pricing
Java Academy · Leçon

Lire des lignes

readLine et boucles.

Lire des lignes est une leçon Java Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Java Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Java Academy comprend 4 leçons au total.

La méthode readLine

readLine() est au cœur de BufferedReader. Elle lit les caractères jusqu'à rencontrer un saut de ligne (Entrée), puis renvoie la ligne sous forme de String.

Le texte renvoyé ne contient pas le caractère de nouvelle ligne. Dans cette leçon, nous lirons une ou plusieurs lignes.

String line = br.readLine();

Lire une ligne

Voici le cas le plus simple : lire un nom et afficher un message d'accueil. readLine() se bloque (attend) jusqu'à ce que l'utilisateur appuie sur Entrée.

Comme il lit depuis System.in, cet extrait se met en pause en attendant une saisie au clavier ; il ne peut donc pas être exécuté automatiquement ici.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br =
            new BufferedReader(new InputStreamReader(System.in));
        String name = br.readLine();
        System.out.println("Welcome, " + name + "!");
    }
}

Valeur renvoyée par readLine à la fin

Lorsqu'il n'y a plus d'entrée (fin du flux ou signalement de EOF par l'utilisateur), readLine() renvoie null au lieu d'un String.

Il s'agit d'un signal essentiel : vérifier la présence de null nous permet de savoir quand arrêter la lecture.

String line = br.readLine();
if (line == null) {
    System.out.println("No more input.");
}

Lire jusqu'à EOF

Pour lire chaque ligne jusqu'à la fin des entrées, répétez la boucle tant que readLine() n'est pas égal à null. Ce schéma courant affecte une valeur et la vérifie dans une seule condition.

À chaque itération, vous obtenez la ligne suivante, jusqu'à ce que null arrête proprement la boucle.

String line;
while ((line = br.readLine()) != null) {
    System.out.println("Got: " + line);
}

Un lecteur multiligne

Voici un programme complet qui réaffiche chaque ligne que vous saisissez jusqu'à la fin du flux.

Il lit depuis System.in, attend donc une entrée et ne peut pas être exécuté automatiquement ; cependant, le schéma de boucle est exactement celui que vous réutiliserez.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br =
            new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = br.readLine()) != null) {
            System.out.println("Echo: " + line);
        }
    }
}

Compter les lignes

Vous pouvez effectuer un traitement dans la boucle, comme un comptage. Ici, nous comptons le nombre de lignes reçues.

Chaque itération lit une nouvelle ligne et incrémente un compteur. Lorsque les entrées sont terminées, nous affichons le total.

int count = 0;
String line;
while ((line = br.readLine()) != null) {
    count++;
}
System.out.println("Lines read: " + count);

Lignes vides et valeur null

Attention : une ligne vide (l'utilisateur appuie simplement sur Entrée) renvoie "", une chaîne String vide — et non null.

Ainsi, "".equals(line) signifie qu'il s'agit d'une ligne vide, tandis que line == null signifie que les entrées sont réellement terminées. Ce sont deux situations différentes.

if (line == null) {
    // input finished
} else if (line.isEmpty()) {
    // user pressed Enter on a blank line
}

Simuler des lignes sans l'entrée standard

Pour observer readLine() en action sans saisie au clavier, vous pouvez alimenter un BufferedReader avec un StringReader. Cet exemple est entièrement exécutable.

La chaîne contient deux lignes séparées par \n, et la boucle affiche chacune d'elles.

import java.io.BufferedReader;
import java.io.StringReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br =
            new BufferedReader(new StringReader("apple\nbanana"));
        String line;
        while ((line = br.readLine()) != null) {
            System.out.println("Fruit: " + line);
        }
    }
}

Supprimer les espaces superflus

Les entrées contiennent souvent des espaces superflus. Utilisez trim() pour supprimer les espaces blancs au début et à la fin d'une ligne avant de l'utiliser.

Les comparaisons et l'analyse restent ainsi fiables, en particulier lorsque les utilisateurs ajoutent accidentellement des espaces.

import java.io.BufferedReader;
import java.io.StringReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br =
            new BufferedReader(new StringReader("  hello  \n"));
        String line = br.readLine().trim();
        System.out.println("[" + line + "]");
    }
}

Lire un nombre fixe de lignes

Il arrive que vous connaissiez le nombre de lignes à l'avance. Une boucle for lit exactement ce nombre de lignes.

C'est fréquent lorsqu'un problème indique : “le premier nombre vous indique combien de lignes suivent.”

for (int i = 0; i < 3; i++) {
    String item = br.readLine();
    System.out.println(i + ": " + item);
}

Bonnes habitudes avec readLine

Souvenez-vous de ces habitudes :

  • Vérifiez toujours que la valeur n'est pas null avant d'utiliser une ligne.
  • Utilisez trim() lorsque des espaces superflus pourraient provoquer des erreurs.
  • Une chaîne vide n'est pas équivalente à null.

Nous allons maintenant transformer ces lignes en nombres.

Vérification rapide

Que renvoie readLine() lorsque le flux d'entrée a atteint sa fin ?

Récapitulatif

Vous avez appris à lire des lignes individuelles, à utiliser une boucle avec while ((line = br.readLine()) != null) et à distinguer une ligne vide ("") de la fin des entrées (null).

Vous avez également vu des exemples exécutables utilisant StringReader. Ensuite : transformer les lignes de texte en nombres.

Questions Fréquemment Posées

La leçon « Lire des lignes » est-elle gratuite ?

Oui — le texte complet de « Lire des lignes » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Java Academy, passe à CoddyKit PRO. Le cours Java Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Lire des lignes » ?

readLine et boucles. Tu pratiques Java Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Java Academy ?

Aucune expérience préalable n'est requise. Java Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Lire des lignes » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Java Academy ?

Oui. Chaque leçon Java Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Pourquoi BufferedReader
  2. Lire des lignes
  3. Analyser des nombres saisis
  4. Fermer les flux en toute sécurité
← Retour à Java Academy