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

Langage Java Discussion :

Insérer une ligne


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20
    Par défaut Insérer une ligne
    Bonjour,

    J'aimerais savoir comment insérer une ou plusieurs lignes de texte dans un fichier texte. Je n'arrive pas à comprendre entre BufferedStreamReader, InputStreamReader, OutputStreamReader, FileReader, FileWriter, etc...

    Merci d'avance,

    Slax

  2. #2
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Lis déjà ça :

    http://anisfrikha.developpez.com/tutoriel/java-io/

    Le plus simple serait peut-être un Printwriter

    Voici un exemple rapidement fait donc pas forcément bien programmé :
    (ajoute une ligne à la fin d'un fichier nommé test.txt)

    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
    28
    29
    30
     
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.PrintWriter;
     
    public class TestPrintWriter
    {
    	public static void main(String args[]) throws Exception
    	{
    		File source = new File("test.txt");
    		File dest = new File("tmp.txt");
     
    		BufferedReader br = new BufferedReader(new FileReader(source));
    		PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(dest)));
     
    		String line;
    		while((line = br.readLine())!=null)
    			pw.println(line);
    		pw.append("ligne ajoutee");
     
    		br.close();
    		pw.close();
     
    		source.delete();
    		dest.renameTo(source);
    	}
    }

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20
    Par défaut
    Merci beaucoup, je comprends un peu mieux.

    Et pour insérer une ligne à un endroit déterminé d'un fichier texte, que faut-il faire ? Arrêter la lecture lorsqu'on arrive à l'endroit désiré, insérer la ligne, et réécrire la fin du fichier initial à la fin ?

    Merci d'avance

  4. #4
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Ba il suffit de faire un compteur avant la boucle et une fois le numéro de ligne atteint insérer

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20
    Par défaut
    Ok, c'est une solution en effet, mais (désolé, j'suis un peu chiant) si ce n'est pas à une ligne déterminée, mais par exemple après un mot déterminé, qui peut se trouver un peu n'importe où dans le fichier texte, et on n'est pas sensé savoir où il est. Y a-t-il moyen par exemple de faire un truc du genre

    while ((line = br.readLine()) != triggerWord) {
    pw.println(line);
    }

    [garder en memoire la position]

    pw.append("j'ai envie de rajouter ça just après triggerWord");

    [reprendre depuis la position]

    while ((line = br.readLine()) != null) {
    pw.println(line);
    }

    Ce code n'est pas correct du tout, mais il me sert juste à comprendre... du coup, je ne sais pas si c'est très compréhensible... Mais est-ce qu'il y a un moyen de le faire ? Merci d'avance en tout cas

  6. #6
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    ba tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(line.equals(triggerWord))
        pw.print("j'ai envie de rajouter ça just après triggerWord");
    voire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(line.contains(triggerWord))
        pw.print("j'ai envie de rajouter ça just après triggerWord");
    à l'intérieur de la boucle, ça devrait marcher

    ou si vraiment tu veux mettre un truc juste après le mot tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String s = line.replace(triggerWord,triggerWord+"j'ai envie de rajouter ça just après triggerWord");
    pw.print(s);

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

Discussions similaires

  1. insérer une ligne dans un dbgrid entre 2 enregistrements
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 3
    Dernier message: 22/09/2005, 09h15
  2. [VBA] insérer une ligne dans un fichier excel
    Par cokinoumasterflash dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/07/2005, 18h52
  3. Réponses: 2
    Dernier message: 07/07/2005, 11h47
  4. Insérer une ligne automatiquement dans une autre tab
    Par davyd dans le forum Langage SQL
    Réponses: 10
    Dernier message: 29/03/2005, 17h08
  5. [VBA][Excel]Insérer une ligne
    Par loverdose dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2005, 16h27

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