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

bogdaboco Messages postés 1 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 18 avril 2005 - 18 avril 2005 à 12:52
franck5182 Messages postés 1 Date d'inscription dimanche 30 mars 2003 Statut Membre Dernière intervention 16 octobre 2005 - 16 oct. 2005 à 16:59
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

safisoft Messages postés 489 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 13 mai 2009 6
18 avril 2005 à 13:10
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);

}
0
franck5182 Messages postés 1 Date d'inscription dimanche 30 mars 2003 Statut Membre Dernière intervention 16 octobre 2005
16 oct. 2005 à 16:59
[dark51]
0
Rejoignez-nous