Erste Schritte Ausgabe eines compare Programms

Arkarion

Mitglied
Hallo,
ich habe vor kurzem erst angefangen Java zu lernen und hänge nun an einem kleinen Programm fest. Es ist wahrscheinlich total simpel, aber ich komm nicht drauf.
Das Programm soll 2 csv Dateien abgleichen und Daten die in Datei1 vorhanden sind aber in Datei2 nicht in einer 3. Datei ausgeben.

Hier ist was ich hab:
Java:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashSet;
import java.util.Set;

public class Main {
 
 
    public static Set<String> readCSVFile(String fileName) throws FileNotFoundException, IOException {
         
        FileReader readerFile = new FileReader(fileName);
        BufferedReader me = new BufferedReader(readerFile);
     
        Set<String> ids = new HashSet<>();
     
        String line;
        String out[] = null;

        while ((line = me.readLine()) != null) {
            out = line.split(";");
            String id = out[0].trim();
            ids.add(id);
         
        }
 
        return ids;
    }
 
 
    public static void compareWithCSVFile(String fileName, Set<String> ids, BufferedWriter bw) throws FileNotFoundException, IOException {
     
        FileReader readerFile = new FileReader(fileName);
        BufferedReader me = new BufferedReader(readerFile);
     
        String line;
        String out[] = null;

        while ((line = me.readLine()) != null) {
            out = line.split(";");
            String id2 = out[0].trim();

            boolean contains = ids.contains(id2);
            if (!contains) {
             
            }
        }
    }

    public static void main(String[] args) throws FileNotFoundException, IOException {
        String fileName1 = "D:\\Users\\S1_awpvp\\Desktop\\Test\\GOAE_Leistung.csv";
        String fileName2 = "D:\\Users\\S1_awpvp\\Desktop\\Test\\GOAE_Preis.csv";
        String filename3 = "D:\\Users\\S1_awpvp\\Desktop\\Test\\difference.csv";
     
        BufferedWriter bw = null;
        FileWriter fw = null;
 
        try {
 
            String content = "content";
 
            fw = new FileWriter(filename3);
            bw = new BufferedWriter(fw);
            bw.write(content);
 
            System.out.println("Done");
 
        } catch (IOException e) {
 
            e.printStackTrace();
 
        } finally {
 
            try {
 
                if (bw != null)
                    bw.close();
 
                if (fw != null)
                    fw.close();
 
            } catch (IOException ex) {
 
                ex.printStackTrace();
 
            }
        }
     
     
        Set<String> idSet = readCSVFile(fileName1);
        System.out.println(idSet);
        compareWithCSVFile(fileName2, idSet, bw);
             
    }
 
    public static void write( String filename, String services) {
     
    }
 
}
Die Frage ist: Wie geb ich das jetzt aus?
 
Ohne mir deinen Code angeschaut zu haben: Es gibt im Netz doch genügend Beispiele, wie man in eine Datei schreib.
 
Danke Flown werde ich machen 🙂

@Robat ich weiß das es etliche Beispiele und methoden gibt in eine Datei zu schreiben. Ich empfehle erst zu lesen und dann zu antworten, dann wüsstes du auch das der Ansatz um zu schreiben bereits vorhanden ist 🙂
Ich möchte wissen wie ich das vervollständigen muss um das gewünschte ergebnis zu erhalten ... wie gesagt ich bin ein totaler Anfänger.

Ich habe noch einen Fehler gefunden und behoben daher hier nochmal der "neue" code, aber ich weiß immernoch nicht was ich in die Datei schreiben muss.

Java:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;

public class Main {
 
 
    public static Set<String> readCSVFile(String fileName) throws FileNotFoundException, IOException {
       
        FileReader readerFile = new FileReader(fileName);
        BufferedReader me = new BufferedReader(readerFile);
   
        Set<String> ids = new HashSet<>();
   
        String line;
        String out[] = null;

        while ((line = me.readLine()) != null) {
            out = line.split(";");
            String id = out[0].trim();
            ids.add(id);
       
        }
 
        return ids;
    }
 
 
    public static void compareWithCSVFile(String fileName, Set<String> ids, BufferedWriter bw) throws FileNotFoundException, IOException {
   
        FileReader readerFile = new FileReader(fileName);
        BufferedReader me = new BufferedReader(readerFile);
   
        String line;
        String out[] = null;

        while ((line = me.readLine()) != null) {
            out = line.split(";");
            String id2 = out[0].trim();

            boolean contains = ids.contains(id2);
            if (!contains) {
                bw.write("Hier liegt mein Hauptproblem!!!");
                System.out.println("Done");

            }
        }
    }

    public static void main(String[] args) throws FileNotFoundException, IOException {
        String fileName1 = "D:\\Users\\Datei1.csv";
        String fileName2 = "D:\\Users\\Datei2.csv";
        String filename3 = "D:\\Users\\difference.csv";
   
        Set<String> idSet = readCSVFile(fileName1);
        System.out.println(idSet);

        try (FileWriter fw = new FileWriter(filename3);
            BufferedWriter bw = new BufferedWriter(fw);) {
 
            compareWithCSVFile(fileName2, idSet, bw);
        }                
    }

}
 
Zuletzt bearbeitet:
so ... den Wald vor lauter Bäumen nicht gesehen ....

Ich hatte das Programm schon die ganze Zeit fertig ... es war ein fehler in der csv datei die ich vergleichen wollte :/
In meine Ausgabezeile gehört: bw.write(id2 + "existiert nicht"); und es läuft einwandfrei, lol
Naja, wenn nochmal jemand nach einer ähnlichen Lösung sucht, hier ist eine 😀
 

Neue Themen


Zurück
Oben