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 :

Modification de variables dans un fichier texte


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 3
    Points : 5
    Points
    5
    Par défaut Modification de variables dans un fichier texte
    Bonjour internautes!

    J'ai besoin d'un aiguillage sur l'écriture d'un programme qui aurait pour fonction de copier un fichier texte, de lire la copie, et remplacer certaines chaines de caractères dans ce fichier selon ce que l'utilisateur entre au clavier. J'ai fais les recherches nécessaires pour trouver comment copier un fichier dans un autre, le lire, mais je bloque au moment de devoir remplacer les variables placées dans le fichier.

    Voici le bout de code que j'ai pu commencer à faire:

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    import java.io.*;
    import java.util.Scanner;
     
    class FichierStreamTest {
        public static void main(String[] args) {
     
             String fichier ="jconf_aten.txt";
             String client = "@Client@";
             String ligne;
     
     
            try {
                File inputFile = new File("jconf_aten.txt");
     
                File outputFile = new File("Jconf_copie.txt");
     
                FileInputStream fis = new FileInputStream(inputFile);
     
                FileOutputStream fos = new FileOutputStream(outputFile);
     
     
                try{
                    InputStream ips=new FileInputStream(fichier);
                    InputStreamReader ipsr=new InputStreamReader(ips);
                    BufferedReader br=new BufferedReader(ipsr);
     
                    Scanner sc = new Scanner(System.in);
                    System.out.println("Nom du client :");
                    String str = sc.nextLine();
     
     
                    while ((ligne=br.readLine())!=null){
     
                        if (ligne.contains(client))
                        {
     
                            int index = ligne.indexOf(client) ;
     
                            String ext = ligne.substring(index, index+8);
     
                            System.out.println(ligne);
     
                       int a;
     
     
                      while ((a = fis.read()) != -1)
                      {
                          String tmp;
                          int lgFind= ext.length();;
     
                           for (int k=0;k<(ligne.length());k++)
                                    { 
                                       try 
                                       { 
                                           tmp = ligne.substring(k,k+lgFind);
                                           } 
                                       catch(Exception e) 
                                       { break; } 
                                       if ( tmp.equalsIgnoreCase(ext) ) 
                                       { 
     
                                          ext = ligne.substring(0,k) + str + ligne.substring(k+lgFind,ligne.length());
     
                                       } 
                                    } 
                           System.out.println(ext);
     
                         fos.write(a);
                        }
                    }
              }
              sc.close();
              br.close();
             }finally{}
     
          fis.close();
     
          fos.close();
     
      }  catch (FileNotFoundException e) {
          System.err.println("FileStreamsTest: " + e);
      } catch (IOException e) {
          System.err.println("FileStreamsTest: " + e);
     }
    }
    Le changement est fait au niveau des deux chaines de caractères mais la modification n'est pas faite au moment où le programme écrit dans le fichier.

    Je suis débutant en programmation et donc en java alors je vous prie d'être indulgent sur les éventuels aberrations que vous pourriez rencontrez

    Puisse la lumière de votre savoir atteindre les portes de mon cerveau.

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Ton code m'a l'air bien compliqué pour ce que tu veux faire :

    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
    package org.k.developpez.forum;
     
    import java.io.*;
    import java.util.Scanner;
     
    class FichierStreamTest {
    	private static final String FILE_IN = "jconf_aten.txt";
    	private static final String FILE_OUT = "jconf_aten.txt";
    	private static final String TAG_CLIENT = "@Client@";
    	public static void main(String[] args) throws IOException {
    		Scanner scanner = new Scanner(new File(FILE_IN));
    		FileWriter writer = new FileWriter(FILE_OUT, false);
     
    		Scanner sc = new Scanner(System.in);
    		System.out.println("Nom du client :");
    		String clientName = sc.nextLine();
    		sc.close(); //On ferme le flux quand on en a plus besoin.
    		while (scanner.hasNextLine()) {
    			String ligne = scanner.nextLine();
    			String ligneComplete = ligne.replaceAll(TAG_CLIENT, clientName);
    			writer.append(ligneComplete + "\n");
    		}
    		scanner.close();//On ferme le flux quand on en a plus besoin.
    		writer.flush();//On s'assure que tout est écrit dans le fichier
    		writer.close();//On ferme le flux quand on en a plus besoin.
    	}
    }
    Globalement, tu utilise les méthodes standards sur les String. Et tu utilise les IO qui ne sont pas des Steam bas niveau.
    L'ensemble de ce que j'ai utilisé ce trouve expliqué dans la FAQ Java de Developpez.com

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 3
    Points : 5
    Points
    5
    Par défaut
    Incroyable...
    Sa marche niquel, j'ai pas tout compris sur le fonctionnement mais je vais me pencher dessus!!
    Un enorme merci à toi Patrick!
    Sujet résolu

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

Discussions similaires

  1. Enregistrer une variable dans un fichier texte
    Par xunil2003 dans le forum Langage
    Réponses: 5
    Dernier message: 19/10/2009, 15h59
  2. Exporter toutes les variables dans un fichier texte
    Par mustang-ffw02 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/10/2008, 19h22
  3. Réponses: 4
    Dernier message: 10/04/2008, 22h23
  4. Lire et ecrire des variables dans un fichier texte
    Par Lynecoln dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/02/2007, 14h16
  5. Réponses: 2
    Dernier message: 08/06/2006, 13h48

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