Comment lire l'entrée de la console - Java
En Java, il existe 3 façons de lire les entrées d'une console:
-
BufferedReader + InputStreamReader (classique)
-
Scanner (JDK 1.5)
-
System.console (JDK 1.6)
1. BufferedReader + InputStreamReader
Pour les développeurs Java expérimentés, vous manquerez cette façon classique de lire une entrée système.
ReadConsole.java
package com.example;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ReadConsole {
public static void main(String[] args) {
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(System.in));
while (true) {
System.out.print("Enter something : ");
String input = br.readLine();
if ("q".equals(input)) {
System.out.println("Exit!");
System.exit(0);
}
System.out.println("input : " + input);
System.out.println("-----------\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
Sortie
Enter something : old and classic input : old and classic ----------- Enter something : q Exit!
2. Scanner
Dans JDK 1.5, le développeur commence à utiliserjava.util.Scanner pour lire l'entrée système.
ReadConsole2.java
package com.example;
public class ReadConsole2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("Enter something : ");
String input = scanner.nextLine();
if ("q".equals(input)) {
System.out.println("Exit!");
break;
}
System.out.println("input : " + input);
System.out.println("-----------\n");
}
scanner.close();
}
}
Sortie
Enter something : hello jdk 1.5 input : hello jdk 1.5 ----------- Enter something : scanner example input : scanner example ----------- Enter something : q Exit!
3. System.console
Dans JDK 1.6, le développeur commence à passer à la classejava.io.Console plus simple et plus puissante.
ReadConsole3.java
package com.example;
public class ReadConsole3 {
public static void main(String[] args) {
while (true) {
System.out.print("Enter something : ");
String input = System.console().readLine();
if ("q".equals(input)) {
System.out.println("Exit!");
System.exit(0);
}
System.out.println("input : " + input);
System.out.println("-----------\n");
}
}
}
Sortie
Enter something : hello jdk 1.6 input : hello jdk 1.6 ----------- Enter something : console example input : cosole example ----------- Enter something : q Exit!
Note
CeSystem.console() n'est utilisable qu'en dehors de l'IDE, un peu difficile pour les tests.