Bonjour,
je souhaite exporter une sélection d'une BDD MySQL vers un fichier plat csv, les champs doivent être séparer par des points virgules.
Donc je fais ma sélection, et j'écris les enregistrements sur un fichier ligne par ligne.
voila le code ke j'utilise pour l'ecriture:
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 public void save(Vector<String> vecteur) { try { FileWriter lu = new FileWriter("toto.txt",true); //Créer un objet java.io.FileWriter avec comme argument le mon du //fichier dans lequel enregsitrer BufferedWriter out = new BufferedWriter(lu); //Mettre le flux en tampon (en cache) String ecrir = join(";",vecteur); out.write(ecrir+NEW_LINE); //Balancer dans le flux le contenu de la zone de texte out.close(); // Fermer le flux (cest //toujours mieux de le fermer explicitement) } catch (IOException er) {;} }Mon problème, c'est que je fais une sélection de plus de 100 000 enregistrements, et ça me prend beaucoup de temps pour l'écrire sur un fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public static String join(String separator, Vector<String> a){ StringBuffer buffer = new StringBuffer(""); for (int i=0 ; i<a.size() ; i++){ buffer.append(a.elementAt(i)); if (i + 1 < a.size()){ buffer.append(separator); } } return buffer.toString(); }
Pouvez vous me donner une technique, une stratégie ou API pour une écriture plus rapide???
Merci d'avance.
Partager