Rasta rockeuse
Messages postés4Date d'inscriptionmercredi 16 novembre 2005StatutMembreDernière intervention 5 mai 2008
-
25 avril 2008 à 14:20
Rasta rockeuse
Messages postés4Date d'inscriptionmercredi 16 novembre 2005StatutMembreDernière intervention 5 mai 2008
-
26 avril 2008 à 01:26
Bonjour à tous !
Comme indiqué, je me lance dans un programme sensé prendre les
données présentes dans un fichier texte et les classer dans un tableau.
Le fichier est de la forme :
Donnée;Donnée;Donnée;Donnée
Donnée;Donnée;Donnée;Donnée
Donnée;Donnée;Donnée;Donnée
etc.
Mon code est le suivant :
import java.io.*;
import java.util.*;
public class Algo_TP4 {
public static void main(String[] args)throws IOException{
/** Demande d'entrée du nom de fichier à l'utilisateur */
Scanner clavier = new Scanner(System.in);
System.out.println("Saisir le nom du fichier de données (avec son extension .txt) : ");
String fil = clavier.next();
try{
FileReader lecteurDeFichier = new FileReader(fil);
BufferedReader buff = new BufferedReader(lecteurDeFichier);
System.out.println("Lecture du fichier : "+fil);
/** Compte le nombre de données par ligne (= nombre de colonnes) */
//System.out.println(buff.readLine());
String premLigne = buff.readLine();
/** Pour
séparer les données, on utilise le tokenizer avec pour délimiteur ";" */
StringTokenizer st = new StringTokenizer(premLigne, ";");
System.out.println("Le fichier "+fil+" contient une liste avec les
donnees suivantes : ");
int nbDonnees = 0;
while(st.hasMoreTokens()){
nbDonnees++;
System.out.print(st.nextToken()+" ");
}
/** Compte le nombre de lignes pour la création du tableau */
int nbLignes = 1;
while(buff.ready()){
buff.readLine();
nbLignes++;
}
/** Déclaration du tableau */
String[][] tabDonnees = new String[nbLignes][nbDonnees];
FileReader lec = new FileReader(fil);
BufferedReader BF = new BufferedReader(lec);
/** Rangement des données dans le tableau */
while(BF.ready()){
String line = BF.readLine();
StringTokenizer tok = new
StringTokenizer(line, ";");
for(int i = 0; i<nbLignes;
i++){
for(int j=0;
j<nbDonnees; j++){
if(tok.hasMoreTokens()){
tabDonnees[i][j]=tok.nextToken();
}
}
}
}//Fin while
}//Fin try
catch (IOException e){
System.out.println("Erreur : "+e);
}
}//Fin main
}//Fin
Le problème est que je me retrouve avec la dernière ligne du texte dans mon tableau et toutes les autres cases sont null.
D'après ce que j'ai compris c'est parce qu'une fois mon fichier lu,
le second buffer ne me permet pas de revenir au début et reparcourir le
texte.
Est-ce que quelqu'un voit comment je pourrais faire ?
Rasta rockeuse
Messages postés4Date d'inscriptionmercredi 16 novembre 2005StatutMembreDernière intervention 5 mai 2008 26 avril 2008 à 01:26
Salut et merci de t'intéresser à mon problème !
Le fichier .txt existe déjà. En fait, le but est de mettre son contenu
dans le tableau à deux dimensions et d'après utiliser un algorithme de
tri et de ressortir le tout dans un fichier xhtml.