[Java] lecture particulière d'un fichier ...

Signaler
Messages postés
1
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
18 avril 2005
-
Messages postés
1
Date d'inscription
dimanche 30 mars 2003
Statut
Membre
Dernière intervention
16 octobre 2005
-
Bonjour,

J'ai un serieux soucis qui me retarde dans la réaliation de mon projet:

Au départ, je lis simplement un fichier à partir duquel je dois récupèrer les lignes et les stocker dans un vecteur.
Voici la petite partie de code correspondante:

FileInputStream FIS=new FileInputStream(new File(nomRepertoire()+nomFichier()));
BufferedReader BF=new BufferedReader(new FileReader(nomRepertoire()+nomFichier()), FIS.available());
String ligne;
Vector v=new Vector();
while(true)
{

ligne="";
ligne=BF.readLine();

if (ligne==null)
break;
v.addElement(ligne);
}

Readline détermine la fin d’une ligne par la présence dans le fichier du caractère /n ou /r ( l'usage du slash est volontaire).
Or /r ne correspond pas dans mon cas, en considérant le sens du fichier à traiter, à un caractère de fin de ligne.
Je me retrouve donc avec un nombre de ligne erroné, à cause de la prise en compte de /r par readline.

Malheureusement, la solution consistant en la lecture caractère par caractère du fichier en vue de considérer de manière différente le /n (fin d'une ligne, ajout de la ligne dans le vecteur) et le /r (simple caractère) est trop lourde, vu la taille des lignes, et je ne peux pas l'utiliser.

Je cherche désespérement un moyen plus effcicace.
A bon entendeur...
Et merci d'avance pour les réponses!

Boco

2 réponses

Messages postés
489
Date d'inscription
vendredi 30 janvier 2004
Statut
Membre
Dernière intervention
13 mai 2009
6
readLine()
de BufferedReader delimite les lignes par le caractère \n (et non pas
/n ou /r) qui signifie un retour à la ligne (ENTER) dans le fichier
texte.

pour l'instanciation du BufferedReader, moi j'utiliserai:

BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream(f1)));

//et puis:

String line;

while((line=in.readLine())!=null){

v.addElement(line);

}
Messages postés
1
Date d'inscription
dimanche 30 mars 2003
Statut
Membre
Dernière intervention
16 octobre 2005

[dark51]