IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Lire un fichier entier


Sujet :

Java

  1. #1
    Membre éclairé Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Par défaut Lire un fichier entier
    Bonjour à tous,

    Je dois lire un fichier txt afin de trouver une chaine de caractère particulière puis la remplacer par autre chose. Tout le reste je le recopie tel quel.
    En gros c'est comme si j'avais ça.
    je
    tu
    il
    nous
    vous
    ils
    et que je voudrais ça

    je
    tu
    il, elle
    nous
    vous
    ils
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    		Tools tool = new Tools();
    		ArrayList tableauArray = new ArrayList();
     
    		String fileToRead=new File("toto.txt");
    		String fileToWrite=new File("tata.txt");
     
    		BufferedReader reader = tool.openFile(fileToRead);
    		String line;
    		String pattern = "il";
     
    		while ((line=reader.readLine()) != null) {
     
    			if (tool.findPattern(pattern line)) {
    				String newLine = pattern+", elle";
    				line = newLine+" "+line.substring(newLine.length());
    				tableauArray.add(line);
    			} else {
    				tableauArray.add(line);
    			}
    		}
     
    		for (int i=0; i<tableauArray.size();i++) {
    			tool.writeLine(tableauArray.get(i).toString(), fileToWrite);
    		}
     
    		tool.closeFile(reader);
    Jusque là ça marche.
    Par contre je voudrais optimiser la lecture du fichier. Ici j'ai pris un exemple simple mais en fait j'ai un fichier qui fait plus de 1000 lignes et ce que je recherche arrive à la 3ème ligne. J'aimerais donc une fois que j'ai trouvé ce que je cherche dans le fichier ne plus avoir à lire ligne par ligne celui mais tout recopier d'un coup jusqu'à la fin.

    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Tu peux jouer sur la taille du buffer donnée en paramètre du BufferedReader
    Mais sur 1000 lignes, il n'y a pas grand chose à optimiser, sauf si bien sûr tu lis sur un disque super lent.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Quelques remarques :


    a++

  4. #4
    Membre éclairé Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Par défaut
    Bonjour,

    C'est exact adiGuba, dans ma fonction writeLine(), je n'arrêtais pas d'ouvrir de fermer le fichier à chaque écriture de ligne donc forcément c'était un peu long. Je suis maintenant revenu à un temps de traitement plus raisonnable.
    Je crois que je vais mettre en commentaire dans mon application "optimiser par adiGuba

    Merci de votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lire un fichier resources en entier
    Par laupas dans le forum Windows Phone
    Réponses: 6
    Dernier message: 27/12/2011, 22h43
  2. Lire un fichier d'entier avec SDL en C
    Par gsaly dans le forum SDL
    Réponses: 15
    Dernier message: 07/05/2007, 20h41
  3. Réponses: 5
    Dernier message: 11/01/2004, 20h17
  4. Lire un fichier de 50 gb
    Par Maryves dans le forum MFC
    Réponses: 2
    Dernier message: 08/01/2004, 14h08
  5. Lire le fichier du port série
    Par saibe dans le forum Linux
    Réponses: 7
    Dernier message: 09/04/2003, 09h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo