Je lis du texte avec un FileReader, avec succès, ça marche bien.
Mes entrées sont des questions de cette forme :
le # signifiant la bonne réponse, et le $$ mon séparateur de ligne.5
Quelle est la couleur du cheval blanc d'Henri IV ?
Vert
Blanc#
Vleu
$$
En fait, je lis des questions en entrée dans l'ordre de lecture, et je veux les écrire en sortie dans un ordre différent.
Ma procédure de traitement fonctionne, mais c'est sur le format du rendu que ça bloque. En effet, les sauts de lignes sont bien là, mais dans le bloc notes, ils sont invisibles, alors que dans Word, WordPad, NotePad++ ... il n'y a aucun problème, j'ai bien un retour à la ligne.
Je joins à ce post les 2 fichiers, celui en entrée et celui en sortie.
Et voici le corps de ma procédure d'écriture :
(précision : questions désigne un vecteur d'Objets de type Question, rempli lors de la lecture du fichier en entrée)
En résumé : pourquoi les sauts de lignes du fichier de sortie sont invisibles dans le bloc notes windows (que la majorité des utilisateurs de mon appli utiliseront) ?
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 try { FileWriter writer = new FileWriter("sortie.txt"); int cpt=0; while(cpt!=questions.size()) { int a=(int)(Math.random()*questions.size()); while(v.contains(a)) { a=(int)(Math.random()*questions.size()); } v.add(a); Question q=(Question)questions.get(a); writer.append(""+q.numero); writer.write('\n'); writer.write(q.question); writer.write('\n'); writer.write(q.A); if(q.reponseLettre=="A") writer.append('#'); writer.write('\n'); writer.write(q.B); if(q.reponseLettre=="B") writer.append('#'); writer.write('\n'); writer.write(q.C); if(q.reponseLettre=="C") writer.append('#'); writer.write('\n'); writer.write("$$"); writer.write('\n'); cpt++; } writer.close(); } catch (IOException e) { e.printStackTrace(); }
Merci
Partager