Bonjour tout le monde ,

J'ai besoin d'un petit coup de main sur ce bout de code , en effet j'utilise mon code pour generer des fichiers qui vont chercher dans un repertoire de fichiers.
par exemple sur l'un de mes fichiers(Logs) j'ai cette structure :

le hh:mm:ss est variant, le nombre de Start est variant entre les End mais pour chaque Start on a un End normalement. Le nombre de Start est supérieur au nombre de End

Start .....hh:mm:ss
ldfjdfklfkjf
ididfhdsfhsu
Start ...hh:mm:ss
Start ...hh:mm:ss
Start ...hh:mm:ss
End ..hh:mm:ss
Start hh:mm:ss
kqldjhjkdh
End...hh:mm:ss
Ce qui m'interesse c'est de récuperer les lignes qui commence par Start et End. Mon code le fait très bien , sauf que j'ai une autre contrainte , je veux récuperer la ligne qui contient Start et juste après la ligne suivante qui contient End puis le Start suivant puis le End suivat et ainsi de suite ....hh:mm:ss End hh:mm:ss Start hh:mm:ss End hh:mm:ss

Voici le code que j'utilise :
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
 
public class resumeLog{
 
	//attributs
	private static PrintWriter fluxSortie;
	private static HashMap<String,String> filesNamesPaths ;
	private static File folder;
	/*private static int rating;*/
 
	/**
         * @param args
         * @throws FileNotFoundException 
         */
	public static void main(String[] args) throws FileNotFoundException {
		// TODO Auto-generated method stub
 
		//récupérer la liste des path des fichiers textes dans une HashMap
        folder = new File("input/traces");
        File[] listOfFiles = folder.listFiles();
        filesNamesPaths = new HashMap<String,String>();
        for (File file : listOfFiles) {
            if (file.isFile()) {
 
            	filesNamesPaths.put(file.getName(),file.getPath()); 
            	  System.out.println(filesNamesPaths.put(file.getName(),file.getPath()));
            }
        }
 
      //Parcourir la HashMap et effectuer les traitements
        for(Entry<String, String> entry : filesNamesPaths.entrySet()) {
        fluxSortie = new PrintWriter(new FileOutputStream("output/Traces/trace"+entry.getKey()));
        	   File file = new File(entry.getValue());
               Scanner scanner = new Scanner(file,"ISO-8859-1");
               while (scanner.hasNextLine()) {
               String currentLine = (String) scanner.nextLine();
 
 
               if(currentLine.startsWith("   Start:") || currentLine.startsWith("Start:") || currentLine.startsWith("   End:") || currentLine.startsWith("End:")){
 
 
               fluxSortie.print(filesNamesPaths.put(file.getName(),"")+"  " +currentLine);
 
 
 
               }
 
               }
               fluxSortie.close();               
               scanner.close();
        }
 
 
 
 
 
        System.out.println("Fin d'éxecution");
 
 
 
 
	}
 
}
Ce code va me donner ça Start .....hh:mm:ss Start ...hh:mm:ss Start ...hh:mm:ss Start ...hh:mm:ss End ..hh:mm:ss Start hh:mm:ss End...hh:mm:ss

alors que je cherche ça Start .....hh:mm:ss End ..hh:mm:ss Start hh:mm:ss End...hh:mm:ss

Est ce qu'il y a un moyen de faire ça sur mes fichiers texte ??

Merci pour vos retours.