Ecrire un champ dans deux fichiers différents

yarpal Messages postés 2 Date d'inscription lundi 20 octobre 2008 Statut Membre Dernière intervention 25 novembre 2009 - 25 nov. 2009 à 17:03
yarpal Messages postés 2 Date d'inscription lundi 20 octobre 2008 Statut Membre Dernière intervention 25 novembre 2009 - 25 nov. 2009 à 17:14
Bonjour à tous,
Ci dessous 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 d'autant que sur la sortie console d'Eclipse tout semble correct.
J'ai beau chercher je ne voit pas où est mon erreur, un peu d'aide serait bienvenue.
Merci à vous,
Yal
// 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;
int control = 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){
control++;
String code = champ.replace(";","\r\n");// remplace le ";" de la fin
String sortieCode = control+" -"+code;
fw.write(sortieCode);
System.out.println(control+" -"+code);
}

}
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();
}
}
}
}

1 réponse

yarpal Messages postés 2 Date d'inscription lundi 20 octobre 2008 Statut Membre Dernière intervention 25 novembre 2009
25 nov. 2009 à 17:14
Le problème est résolu.
fw.flush() et le tour est joué.
0
Rejoignez-nous