Bon j'ai un petit soucis avec un BufferedReader...
Je parcours un fichier avec celui-ci.
Mon problème est qu'à la création de ce buffer, il n'est pas prêt à être lu (ready()=false) et si j'utilise le debugger en pas à pas, au pas suivant la fonction ready() renvoie "true".
Je ne comprends pas cette erreur... Voici mon code:
en gros en lecture ficTexte.ready() reste à false
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 BufferedReader ficTexte = new BufferedReader(new InputStreamReader(stream)); int count = 0; try { if (stream == null) { logger.debug("[ResubFormController]>>>>> Stream null"); throw new FileNotFoundException("[ResubFormController]countPj>>>Fichier non trouvé:"); } if(ficTexte.ready()){ do { String ligneEntiere = ficTexte.readLine(); if (ligneEntiere != null) { try{ ligne = ligneEntiere.split("=")[0]; if (ligne.equals(ligne_a_trouver)) { String trouve = ligneEntiere.split("=")[1] ; logger.debug(">>>> "+ligne_a_trouver+" : "+trouve); count = count+1; } } catch(Exception e){ logger.debug("[ResubFormController]>>>> Erreur pendant la lecture du fichier, recherche du nb de pj"); break; } } else break; } while ( ficTexte != null); ficTexte.close(); return count; } else{ logger.debug("[ResubFormController]>>>>> Erreur de lecture du fichier..."); return -1; } }
en debugger après BufferedReader ficTexte = new BufferedReader(new InputStreamReader(stream));
ficTexte.ready() est "false" et si je vais à létape suivant avec F6, je passe à true... J'ai essayé de mettre un sleep suffisemment grand (5s) entre ses 2 etapes mais le comportement reste le même.
Partager