Bonjour,
Depuis ce matin ,j'essayes de construire une classe main qui va lire un fichier plat qui contient plusieurs lignes(chaque ligne contient des données séparés par le délimiteurs "|;").
et après mon programme doit pouvoir extraire les 4 derniers données dans chaque ligne du fichier et les mettre à jour dans une table mysql(ce n'est pas le problème que j'ai),le problème c'est que le programme boucle en extractant tous les lignes mais sans différencier entre chaque ligne .
voila la structure du fichier:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
AG0001|;78015|;MRE|;Mlle|;cliente1|;prenomS|;1952-02-02|;eljadida|;Ma|;Ma|;4702|;Contrôleurs*laitiers,*inséminateurs*et*autres*agents*techniques*agricoles|;adresse15445qsd|;sqdqsd|;casablanca-maroc|;20200|;amiens|;Ma|;+33|;654564|;+33|;061231137|;CNI|;|;2020-04-02|;KO|;inssufissance au niveau solde client|;1700022656672011270000026215000071365|;N
 
AG0003|;78015|;MRE|;Mlle|;cliente2|;yyy|;1986-02-02|;marrakech|;Ma|;Ma|;1102|;Maraîchers,*horticulteurs*sur*petite*exploitation|;adresse121881|;sqd|;casablanca-maroc|;20200|;bordeaux|;Ma|;+33|;654|;+33|;052323212|;PAS|;|;2020-02-12|;KO|;inssufissance au niveau solde client|;1700022656672011270000026215000071365|;N
...
voila la classe main:
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
 
 
        String file = "C:\\Users\\belkaika\\Desktop\\batch_INJECT_TIERS_PROSPECTS\\RTR_INJECT_TIERS_PROSPECTS.txt";
        String line;
        System.out.println ("fichier spécifié = " + file);
 
        ArrayList <String> words = new ArrayList<String> ();
 
        BufferedReader br =  new BufferedReader (new FileReader (file)); //içi j'utilisais ce buffer quand je testai : while ((line  = br.readLine()) != null)
        try{
            while ((line  = br.readLine()) != null) {
 
                StringTokenizer token = new StringTokenizer (line,"|;");
                String[] List = new String [token.countTokens()];
                 int i = 0;
                while(token.hasMoreTokens()){
 
                 List[i] = token.nextToken();
                 System.out.println ("List[i] est égale = " + List[i]);
                 //ici comment extraire seulement les 4 derniers données de chaque ligne délimités par le délimiteur "|;"
                 i++;
 
                }
                   // words.add(token.nextToken());
 
            }
        }
        catch (IOException e) {
 
            System.out.println (e.getMessage());
            e.printStackTrace();
 
        } finally {
            br.close();
        }
l'outpout généré est le suivant:
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
 
List[i] est égale = AG0001
List[i] est égale = 78015
List[i] est égale = MRE
List[i] est égale = Mlle
List[i] est égale = cliente1
List[i] est égale = prenomS
List[i] est égale = 1952-02-02
List[i] est égale = eljadida
List[i] est égale = Ma
List[i] est égale = Ma
List[i] est égale = 4702
List[i] est égale = Contrôleurs*laitiers,*inséminateurs*et*autres*agents*techniques*agricoles
List[i] est égale = adresse15445qsd
List[i] est égale = sqdqsd
List[i] est égale = casablanca-maroc
List[i] est égale = 20200
List[i] est égale = amiens
List[i] est égale = Ma
List[i] est égale = +33
List[i] est égale = 654564
List[i] est égale = +33
List[i] est égale = 061231137
List[i] est égale = CNI
List[i] est égale = 2020-04-02
List[i] est égale = KO
List[i] est égale = inssufissance au niveau solde client
List[i] est égale = 1700022656672011270000026215000071365
List[i] est égale = N
List[i] est égale = AG0003
List[i] est égale = 78015
List[i] est égale = MRE
List[i] est égale = Mlle
List[i] est égale = cliente2
List[i] est égale = yyy
List[i] est égale = 1986-02-02
List[i] est égale = marrakech
List[i] est égale = Ma
List[i] est égale = Ma
List[i] est égale = 1102
List[i] est égale = Maraîchers,*horticulteurs*sur*petite*exploitation
List[i] est égale = adresse121881
List[i] est égale = sqd
List[i] est égale = casablanca-maroc
List[i] est égale = 20200
List[i] est égale = bordeaux
List[i] est égale = Ma
List[i] est égale = +33
List[i] est égale = 654
List[i] est égale = +33
List[i] est égale = 052323212
List[i] est égale = PAS
List[i] est égale = 2020-02-12
List[i] est égale = KO
List[i] est égale = inssufissance au niveau solde client
List[i] est égale = 1700022656672011270000026215000071365
List[i] est égale = N
Merci de m'aviser sur ce problème .