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:
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 gros en lecture ficTexte.ready() reste à false
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.