Bonjour à tous,
J'ai réalisé un programme qui fait en gros le boulot d'un ETL (extraction de données, transformation et export sous fichier .csv)
Algo :
1- création du fichier :
2- Exécution d'une requête sql qui me ramène toutes les lignes dans un seul objet (j'utilise une API spéciale pour ça)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 PrintWriter printWriter = new PrintWriter(new BufferedWriter( new FileWriter("mon_fichier.csv")));
3- Boucle for pour lire dans cet objet ligne par ligne, traitement puis écriture dans le fichier de sortie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part printWriter.println(champ1+";"+champ2+";"+champ3);
4- Fermeture du fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part printWriter.close();
Le souci c'est qu'il n'écris pas toujours 100% des lignes extraites : parfois il n'en écrit que la moitié, sans que j'arrive à déterminer la cause du problème... J'ai remarqué cependant qu'il me le faisait seulement dans la boucle la plus complexe,et quand il doit traiter un grand nombre de lignes.
Du coup j'ai augmenté à fond la mémoire de la machine virtuelle... sans aucun résultat...
Auriez vous une idée ? Merci pour toute aide!![]()








Répondre avec citation






Partager