import java.io.IOException; import java.io.FileReader; import java.io.BufferedReader; import java.util.ArrayList; public class ReadFileSt2{ private static String fichier = "fichiertexte.txt"; public static void main(String[] args){ if(args.length >= 1) { fichier = args[0]; } ArrayList al = new ArrayList(); try { FileReader fr = new FileReader(fichier); BufferedReader br = new BufferedReader(fr); String str = null; // a moins que tu sache pourquoi c'est pas indispensable !!! // personelement je le sais, mais je suis pas persuadé que tous // les programmeurs le sache //int nbligne = 0; // inutile aussi while((str=br.readLine()) != null) { String[] tableau = str.split(";"); //int taille = splits.length; // complètement inutile // la copie est inutile : et en plus tu utilisait chaque fois le même tableau // ici tableau est chaque fois un nouvelle objet // par ailleurs pour copier un tableau tu as arraycopy de la classe System /* for(int i = 0; i < taille ;i++) { tableau[i] = splits[i]+"/"; } */ System.out.println(tableau[0]+"\t->\t"+tableau[1]); // tu pourrais mettre un séparateur !!! al.add(tableau); }br.close(); } catch(IOException ioe){System.out.println("erreur:"+ioe);} String[][] res = new String[al.size()][]; al.toArray(res); for(String[] arr : res) { System.out.println(java.util.Arrays.toString(arr)); } } }