Bonjour à tous

Dans le cadre d'une application je dois effectuer des tests sur un fichier csv ayant pour séparateur ";"

Je créer donc un FILE :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 File fileTraitement = new File(path);
et les outils associés :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
  FileReader fr = new FileReader(fileTraitement);
                    BufferedReader br = new BufferedReader(fr);
ensuite je boucle dans une while tant qu'il reste des lignes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
 
   while ((ligne = br.readLine()) != null) {
 
}
Puis je créer un StringTokenizer de cette ligne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
    st = new StringTokenizer(ligne);
Dans la boucle dans un premier temps je procédais ainsi :

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
 
      st = new StringTokenizer(ligne);
                        String sampleT = st.nextToken(";");
                        String locusT = st.nextToken(";");
                        String runT = st.nextToken(";");
                        String dyeT = st.nextToken(";");
                        String alleleT1 = st.nextToken(";");
                        String peakT1 = st.nextToken(";");
                        String qualT1 = st.nextToken(";");
                        String volumeT1 = st.nextToken(";");
                        String alleleT2 = st.nextToken(";");
                        String peakT2 = st.nextToken(";");
                        String qualT2 = st.nextToken(";");
                        String volumeT2 = st.nextToken(";");
                        String commentT = st.nextToken(";");
Puis j'ai vu qu'il y avait des optimisations possibles avec StringBuilder :
Donc en dehors de ma boucle je créer mes StringBuilder :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
      StringBuilder sampleT = new StringBuilder();
                        StringBuilder locusT = new StringBuilder();
                        StringBuilder runT = new StringBuilder();
                        StringBuilder dyeT = new StringBuilder();
                        StringBuilder alleleT1 = new StringBuilder();
                        StringBuilder peakT1 = new StringBuilder();
                        StringBuilder qualT1 = new StringBuilder();
                        StringBuilder volumeT1 = new StringBuilder();
                        StringBuilder alleleT2 = new StringBuilder();
                        StringBuilder peakT2 = new StringBuilder();
                        StringBuilder qualT2 = new StringBuilder();
                        StringBuilder volumeT2 = new StringBuilder();
                        StringBuilder commentT = new StringBuilder();
Et dans la boucle :

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
 
 
                            sampleT.insert(0, st.nextToken(";"));
                            locusT.insert(0, st.nextToken(";"));
                            runT.insert(0, st.nextToken(";"));
                            dyeT.insert(0, st.nextToken(";"));
                            alleleT1.insert(0, st.nextToken(";"));
                            peakT1.insert(0, st.nextToken(";"));
                            qualT1.insert(0, st.nextToken(";"));
                            volumeT1.insert(0, st.nextToken(";"));
                            alleleT2.insert(0, st.nextToken(";"));
                            peakT2.insert(0, st.nextToken(";"));
                            qualT2.insert(0, st.nextToken(";"));
                            volumeT2.insert(0, st.nextToken(";"));
                            commentT.insert(0, st.nextToken(";"));
Je vide et je rempli à chaque fois les champs et ce pour un fichier qui peut contenir 100000 lignes

Pensez vous que c'est une méthode correct maintenant en utilisant les StringBuilder ou c'est encore la catastrophe et si c'est le cas quels outils devrais-je utiliser

J'espère avoir des réponses
Merci
Ben