Trier trois fichiers textes et recopier les lignes similaires dans un autre fich

Résolu
djaval01 Messages postés 6 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 9 novembre 2012 - 1 févr. 2012 à 13:42
djaval01 Messages postés 6 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 9 novembre 2012 - 1 févr. 2012 à 19:43
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

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 369
1 févr. 2012 à 14:15
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.
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 369
1 févr. 2012 à 13:54
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(); 
}

}
0
djaval01 Messages postés 6 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 9 novembre 2012
1 févr. 2012 à 14:02
je vois,
je le teste tout à l'heure.
merci
0
djaval01 Messages postés 6 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 9 novembre 2012
1 févr. 2012 à 19:43
bonne ton idée et plus pratique en plus.j'adopte et merci
0
Rejoignez-nous