bonjour,
je souhaiterais avoir un avis sur une solution technique.
je dispose d'une application qui fait des calculs et qui initialise une List() avec 3000 "elements" de 100 caracteres (en moyenne). (ici la list me sert de tampon pour eviter de stocker tes les resultats des calculs en memoire)
jusqu' la pas de Pb
apres je dois ecrire dans un fichier les resultats (3000 x 100 caracteres en moyenne) , pour cela j'utilise une boucle for qui ajoute 100caracteres + 1saut de ligne .... jusqu'a disposé d'un string de 300000 caracteres qui seront ecrie (pas de Pb non plus)
Mon pb vient du temps mis par ma boucle for pour realiser l'initialisation de mon tampon de 300000 caracteres.
Donc ma question : est-il possible de gagner du temps dans mon for ?(exemple si j'ai 1 000 000 de resultats divisé par 3000 et que le for prend 15 sec je dois attendre 5000 secondes avant de pouvoir disposé de mon fichier de sortie.)
je rajoute un peu de code pour mieux comprendre.
Merci pour vos conseils![]()
Sebastien
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 //traitement qui initialise list (3000 "lignes" de 100 caracteres) if (list.size()==3000) { for (int boucle=0;boucle<list.size();boucle++) { if (tampon=="") { tampon = list.get(boucle).toString(); } else { tampon = tampon+"\n"+list.get(boucle).toString(); } } System.out.println("Ecriture ds le fichier.txt"); Ecriture(tampon); tampon=""; list.clear(); }
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 static void Ecriture(String tampon) { try { FileWriter flux = new FileWriter("EnTest.txt",true); BufferedWriter tampon = new BufferedWriter(flux); tampon.write(tampon); tampon.newLine(); tampon.close(); flux.close(); } catch (IOException e ) { System.out.println("ERREUR : Il y a eu une erreur lors de l'ecriture des resultats dans le fichier "); e.printStackTrace(); } }
Partager