Comment lire une entrée ligne par ligne en Java? J'ai cherché et jusqu'à présent, j'ai ceci:
import Java.util.Scanner;
public class MatrixReader {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (input.hasNext()) {
System.out.print(input.nextLine());
}
}
Le problème est qu'il ne lit pas la dernière ligne. Donc, si je saisis
10 5 4 20
11 6 55 3
9 33 27 16
sa sortie ne sera
10 5 4 20 11 6 55 3
Idéalement, vous devez ajouter un println () final car, par défaut, System.out utilise un PrintStream qui ne se vide que lorsqu'un retour à la ligne est envoyé. Voir Quand/pourquoi appeler System.out.flush () en Java
while (input.hasNext()) {
System.out.print(input.nextLine());
}
System.out.println();
Bien qu'il existe d'autres raisons possibles à votre problème.
Les suggestions précédemment publiées ont des problèmes de faute de frappe (orthographe hasNextLine) et de nouvelle ligne (println avait besoin de chaque ligne). Voici la version corrigée -
import Java.util.Scanner;
public class XXXX {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (input.hasNextLine()){
System.out.println(input.nextLine());
}
}
}
Essayez d'utiliser la méthode hasnextLine()
.
while (input.hasnextLine()){
System.out.print(input.nextLine());
}