Bonjour à tous,
Je met en pièce jointe la Classe que j'ai écrit. Le but est d'extraire certains champs d'un grand tableau sachant qu'un des champs doit se retrouver dans deux fichiers différents. Je ne comprends pas pourquoi le if imbriqué celui qui duplique le champ dans un autre fichier ne fonctionne que partiellement. Il manque des lignes dans le fichier destination.
J'ai beau chercher je ne voit pas où est mon erreur, un peu d'aide serait bienvenue.
Merci à vous,
Yal
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81 // Classe de nettoyage on ne garde que les colonnes significatives, on crÈe aussi le fichiers des codes ISIN pour tÈlÈchargement des donnÈes intraday import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.StringTokenizer; public class ListeEuronext { public ListeEuronext(){ String s = File.separator; Date dateFormatee = new Date(); SimpleDateFormat formatDate = new SimpleDateFormat("yyMMdd"); String date = formatDate.format(dateFormatee); FileReader lire = null; BufferedReader tamponIn = null; File euroListe = new File("d:"+s+"Bourse"+s+"Archives"+s+"InfoSocietes"+s+"ListeEuronext-"+date+".txt");//fichier de sortie des donnÈes sociÈtÈes FileWriter ecrireEuroListe = null; String fichierCodes = "d:"+s+"Bourse"+s+"Programmes"+s+"Temp"+s+"Codes.txt";// indique le chemin du fichier des codes ISIN try{ FileWriter fw = new FileWriter(fichierCodes,true); ecrireEuroListe = new FileWriter(euroListe); lire = new FileReader("d:"+s+"Bourse"+s+"Programmes"+s+"Temp"+s+"ListeEuronextBrute.txt"); tamponIn = new BufferedReader(lire); int nbLignes = 0; while(true){ String ligne = tamponIn.readLine(); nbLignes += 1; if(ligne == null) break; if(nbLignes > 4){ int indexToken = 0; StringTokenizer st = new StringTokenizer(ligne, ";"); StringBuffer newLigne = new StringBuffer(); while(st.hasMoreTokens()){ indexToken +=1; if(indexToken > 12) break; if(indexToken < 6 || indexToken == 12){ String champ = st.nextToken()+";"; champ = champ.replace(",",""); newLigne.append(champ); // duplique le champ dans un autre fichier if(indexToken == 2){ String code = champ.substring(0, 12);// supprime le ";" de la fin fw.write(code+"\r\n"); } } else st.nextToken(); } newLigne.deleteCharAt(newLigne.length()-1); String sortie = newLigne.toString(); ecrireEuroListe.write(sortie+"\r\n"); } } } catch(IOException exception){ exception.printStackTrace(); } finally{ try{ ecrireEuroListe.flush(); tamponIn.close(); ecrireEuroListe.close(); File supFichierSource = new File("d:"+s+"Bourse"+s+"Programmes"+s+"Temp"+s+"ListeEuronextBrute.txt"); supFichierSource.delete(); } catch(IOException exception1){ exception1.printStackTrace(); } } } }
Partager