rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

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

Posté par boco, le lundi 18 avril 2005 à 12:30:32
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
Répondre à boco  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Visiteur, le lundi 18 avril 2005 à 14:29:18
Bonjour,

tu dit :
"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."

A ton avis, la méthode readline fait quoi ?
Répondre à Visiteur

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
boco, le lundi 18 avril 2005 à 15:18:05
Pour améliorer les performances des flux sur un fichier, la mise en tampon des données lues ou écrites permet de traiter un ensemble de caractères représentant une ligne plutôt que de traiter les données caractères par caractères. Le nombre d'opérations est ainsi réduit.
Je n'en profite pas si j'utilise read au lieu de readLine, non?!
Répondre à boco

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Pool Orion, le mardi 19 avril 2005 à 13:37:45
Salut,

Ok pour la lecture caractère par caractère, mais ne peux tu pas lire ligne par ligne (ou du moins ce que la méthode readLine considére comme une ligne) et ensuite tester s'il est nécessaire de concaténer la dernière ligne lue avec la dernière gardée en mémoire avant l'insertion dans ton vecteur?

Pool Orion
Répondre à Pool Orion
Logiciels pertinents trouvés dans les téléchargements
Télécharger IsoBuster 2.4IsoBuster - IsoBuster est un outil de récupération de CD, DVD, HD-DVD et BD prenant en charge tous les formats et tous leurs système de...Catégorie: Gravure
Licence: Freeware/gratuit
Télécharger DS Monkey Audio - Filtre APE 1.00DS Monkey Audio - Filtre APE - Le format MonkeysAudio (extension *.ape) est un format de compression audio lossless (sans pertes) permettant de réduire la...Catégorie: Plugins audio
Licence: Freeware/gratuit
Télécharger ModPlug Player 1.46.01ModPlug Player - MODPlug est un lecteur permettant de lire des fichiers MOD, c'est-à-dire des pistes de séquenceurs (trackers), mélant des...Catégorie: Lecteurs audio
Licence: Freeware/gratuit
Télécharger GOM Player 2.1.9.3754GOM Player - GOM Player est un lecteur vidéo léger et rapide. Tout comme VLC , il inclue déjà la plupart des codecs nécessaires à la...Catégorie: Lecteurs vidéo
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [Java] lecture particulière d'un fichier ... »