Trier trois fichiers textes et recopier les lignes similaires dans un autre fich [Résolu]

Signaler
Messages postés
6
Date d'inscription
mercredi 27 avril 2011
Statut
Membre
Dernière intervention
9 novembre 2012
-
Messages postés
6
Date d'inscription
mercredi 27 avril 2011
Statut
Membre
Dernière intervention
9 novembre 2012
-
slt voilà un problème assez banale mais je bloque.
j'aimerais que vous regardiez le codes le codes suivant et me disiez ce qui ne va pas.
Ce code est censé comparer le contenu de trois fichier texte et recopier les lignes similaires dans un autre fichier.
merci d'avance.


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class CombCom
{
public CombCom()
{

String ligne = null;
String ligne2 = null;
String ligne3 = null;
BufferedReader fichier1 = null;
BufferedReader fichier2 = null;
BufferedReader fichier3 = null;
BufferedWriter fichSortie = null;

try {
fichier1 = new BufferedReader(new FileReader("fichentrer1.txt"));
fichier2 = new BufferedReader(new FileReader("fichentrer2.txt"));
fichier3 = new BufferedReader(new FileReader("fichentrer3.txt"));

fichSortie = new BufferedWriter(new FileWriter("fichSortie.txt"));
while(fichier1.ready())
{
ligne = fichier1.readLine();
while(fichier2.ready())
{
ligne2 = fichier2.readLine();
if(ligne.contentEquals(ligne2))
{
while(fichier3.ready())
{
ligne3= fichier3.readLine();
if(ligne2.contentEquals(ligne3))
{
fichSortie.write(ligne3);
fichSortie.newLine();
}
}
}
}
}
}catch (IOException e){
System.err.println("IOException : "+e.getMessage());
}finally {
/*Fermeture des fichiers*/
try{
fichier1.close();
fichier2.close();
fichier3.close();
fichSortie.close();

}catch ( Exception e ){
; /*ne rien faire*/
}
}

}
}

4 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
294
Tu peux essayer de le faire en poo et en plus générique en utilisant une classe qui contient une liste de fichiers ainsi qu'une méthode comparer qui fait le travail pour tous les fichiers de la liste.
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
294
Bonjour,

J'aurais plutôt vu un truc comme ca :

while(fichier1.ready() && fichier2.ready() && fichier1.ready()){
ligne1=fichier1.readLine();
ligne2=fichier2.readLine();
ligne3=fichier3.readLine();
if(ligne1.equals(ligne2) && ligne2.equals(ligne3)){
fichSortie.write(ligne3);
fichSortie.newLine(); 
}

}
Messages postés
6
Date d'inscription
mercredi 27 avril 2011
Statut
Membre
Dernière intervention
9 novembre 2012

je vois,
je le teste tout à l'heure.
merci
Messages postés
6
Date d'inscription
mercredi 27 avril 2011
Statut
Membre
Dernière intervention
9 novembre 2012

bonne ton idée et plus pratique en plus.j'adopte et merci