Bonjour à tous,
J'apprends JAVA et je cherche à tester les flux IO pour la saisie clavier, lecture écriture dans fichier...
Je suis sous éclipse.
Je fais un "systeme de gestion d'adhérent" (extrêment simplifié)
Mon main commencer par vérifier si il y a déjà un fichier d'annuaire d'adhérents, si il n'est pas présent, il le crée.
ça, ça fonctionne.
ensuite, je crée un adhérent. Donc je demande le nom, prenom, profession.
J'ai cette erreur au moment de la demande du nom.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Bonjour, bienvenue dans le système de gestion d'abonnés Aucun annuaire n'a été trouvé Veuillez entrer un nom pour votre annuaire d'adhérants : toto L'annuaire toto est constitué de 0 adhérants Création d'un adhérant : Entrez le nom de l'adhérant java.util.NoSuchElementException: No line found L'adhérant a été crée : nom=, prenom=, profession= L'adhérant a été ajouté à l'annuaire at java.util.Scanner.nextLine(Scanner.java:1540) at Main.main(Main.java:85)
Et voici la partie de mon main où je crée l'adhérent : (le main complet en dessous si besoin)
J'avais utilisé au départ un inputstream... mais ça faisait pareil, donc j'ai testé le scanner... je ne vois pas ce qui ne fonctionne pas.
Merci de vos conseils...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 BufferedReader flux2 = new BufferedReader( new InputStreamReader(System.in));
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 // ***************************************** // annuaire rechargé ou nouveau crée System.out.println("\n\n\n"); // création du flux de lecture /* * BufferedReader flux2 = new BufferedReader( new * InputStreamReader(System.in)); */ String nom="", prenom="", profession=""; try { Scanner sc = new Scanner(System.in); // récupération des infos de l'adhérent System.out.println("Création d'un adhérant :"); System.out.println("Entrez le nom de l'adhérant"); nom = sc.nextLine(); System.out.println("Entrez le prénom de l'adhérant"); prenom = sc.nextLine(); System.out.println("Entrez la profession de l'adhérant"); profession = sc.nextLine(); sc.close(); } catch (NoSuchElementException e){ e.printStackTrace(); } // création de l'adhérant Adherant adh = new Adherant(nom, prenom, profession); System.out.println("L'adhérant a été crée :"); System.out.println(adh); annuaire.addAdherant(adh); System.out.println("L'adhérant a été ajouté à l'annuaire"); }
le main complet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub // *************************************************************** // Démarrage - verification de la présence d'un annuaire enregistré ou // création System.out.println("Bonjour, bienvenue dans le système de gestion d'abonnés"); // Lecture du fichier annuaire si il existe // création du flux en dehors du try ObjectInputStream ois = null; AnnuaireAdherants annuaire = null; try { ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(new File("annuaire.dat")))); annuaire = (AnnuaireAdherants) ois.readObject(); ois.close(); } catch (FileNotFoundException e) { // cette exception se déclenche si le fichier n'a pas été trouvé, // donc si c'est la première fois. Il faut donc créer un annuaire try { // création du lecteur InputStreamReader lecteur = new InputStreamReader(System.in); // création du flux d'entrée BufferedReader flux = new BufferedReader(lecteur); String nom; // Interrogation System.out.println( "Aucun annuaire n'a été trouvé \nVeuillez entrer un nom pour votre annuaire d'adhérants :"); nom = flux.readLine(); flux.close(); annuaire = new AnnuaireAdherants(nom); // SauvegardeAnnuaire.sauvegarderAnnuaire(annuaire); } catch (IOException e2) { e2.printStackTrace(); } } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } System.out.println("\n\n"); System.out.println(annuaire); // ***************************************** // annuaire rechargé ou nouveau crée System.out.println("\n\n\n"); // création du flux de lecture /* * BufferedReader flux2 = new BufferedReader( new * InputStreamReader(System.in)); */ String nom="", prenom="", profession=""; try { Scanner sc = new Scanner(System.in); // récupération des infos de l'adhérent System.out.println("Création d'un adhérant :"); System.out.println("Entrez le nom de l'adhérant"); nom = sc.nextLine(); System.out.println("Entrez le prénom de l'adhérant"); prenom = sc.nextLine(); System.out.println("Entrez la profession de l'adhérant"); profession = sc.nextLine(); sc.close(); } catch (NoSuchElementException e){ e.printStackTrace(); } // création de l'adhérant Adherant adh = new Adherant(nom, prenom, profession); System.out.println("L'adhérant a été crée :"); System.out.println(adh); annuaire.addAdherant(adh); System.out.println("L'adhérant a été ajouté à l'annuaire"); } }
Partager