Vergleichen von 2 csv-Dateien

Korvinus

Mitglied
Hallo Leute,
ich habe ein kleines Problem. Ich möchte 2 csv Dateien vergleichen. Die Unterschiede möchte ich gerne in eine 3. csv Datei geschrieben haben, um später weiter damit zu arbeiten. Die Dateien sollen nach mehreren Faktoren vergleichen: Name und Adresse. Nur wenn In einer Zeile Name und Adresse gleich sind, ist der komplette Eintrag mit Telefonnummer, Email usw als gleich in eine Tabelle zu schreiben.

csv1
name adresse tel email
abc abc 123 a@b.de
cde cde 234 c@d.de
fgh fgh 567 f@g.de

csv2
name adresse tel email
abc abc 856 h@i.de
ztu uzt 687 c@d.de
uzt rtt 214 u@g.de

Herauskommen soll folgendes:
csv3
name adresse tel email
abc abc 123 a@b.de
abc abc 856 h@i.de

Hier der Code:
=====================================================
package csv;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
public class Einlesen
{

private static ArrayList<String> al = new ArrayList<String>();
private static ArrayList<String> ladeDatei(String datName)
{

File file = new File(datName);

if (!file.canRead() || !file.isFile())
{
System.exit(0);
}
BufferedReader in = null;
try
{
in = new BufferedReader(new FileReader(datName));
String zeile = null;
while ((zeile = in.readLine()) != null)
{

al.add(zeile);
}
} catch (IOException e)
{
e.printStackTrace();
}
finally
{
if (in != null)
{
try
{
in.close();
}
catch (IOException e)
{
}
}
}
return al;
}

public static void main(String[] args)
{
String datei1 = "Mappe1.csv";
String datei2 = "Mappe2.csv";
Bearbeiten b = new Bearbeiten(datei1,datei2);
b.bearbeiteDatei(ladeDatei(datei1),ladeDatei(datei2));
}
}
=======================================================
package csv;

import java.util.ArrayList;

public class Bearbeiten
{
String s1;
String s2;
public Bearbeiten(String datei1, String datei2)
{
this.s1 = datei1;
this.s2 = datei2;
}

public String bearbeiteDatei(ArrayList<?> arrayList, ArrayList<?> arrayList2)
{
System.out.println(arrayList);
System.out.println(arrayList2);
if(arrayList.equals(arrayList2))
{
System.out.println("Die beiden Strings sind gleich");
}
else
{
System.out.println("Die beiden Strings sind nicht gleich");
}
return(toString());
}
}
=========================================================
Herauskommen tut aber immer folgendes: (Werte sind hier andere als oben im Beispiel)

[Name;PLZ;Straße;Ort, a;12345;abc;ertr, a;12345;abc;ertr, b;45678;fdsa;das, c;56489;dsad;dsag, d;47797;dsfaads;ag, Name;PLZ;Straße;Ort, a;12345;abc;ertr, a;12345;abc;ertr, u;53543;hgfh;dsw, z;44354;dsadlkgk;urte, i;75125;jhf;uzuu]

Nun meine Fragen:
-Wieso kommt "" vor Name heraus?
-Wieso hängt er beide aneinander und vergleicht sie dann, statt eins einzulesen, dann das andere einzulesen und dann zu vergleichen?
-Kann mir vielleicht Jemand den Code verbessern? bzw Helfen?
 

mrBrown

Super-Moderator
Mitarbeiter
Deine ArrayList al sollte keine statische Variable sein, sondern erst in der ladeDatei deklariert werden, das solltest du als erstes mal ändern ;)
 

Senftube

Aktives Mitglied
Die 3 Zeichen  am Anfang einer datei ist das sogenammte BOM ByteOrderMark (googlen)
das die Reichenfolge der Zeichkodierung festlegt (wichtig bei UTF-16 Dateien).
Statt in = new BufferedReader(new FileReader(datName));
solltest du
in = new BufferedReader(new InputStreamReader(Paths.get(datName) ,StandardCharsets.ISO_8859_1)); default ist UTF-8 verwenden,je nachdem welche Codierung die Dateien haben (Tipp: notpad++ zum
umwndeln der Codierung). .ini-dateien unter windows sind z.B. immer UTF-16 LE

Tipp zur Methode
Ich würde mir beim einlesen von cv1 ein Properties-Objekt füllen, das als (eindeutigen key) z_B
name;adresse enthält und den Rest der Infos als Wert des keys z.B tel;email.
Beim Einlesen von cvs2 wuerde ich mit val1 = props.getProperties(name_aus_csv2 + ";" + addr_aus-csv2); prüfen, ob es den wert schonmal in der csv1 gab.
Wenn ja beide nach csv3 schreiben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Zwei Dateien miteinander vergleichen Java Basics - Anfänger-Themen 11
K 2 Text-Dateien vergleichen Java Basics - Anfänger-Themen 11
E Vergleichen von 2 txt bzw. html-Dateien? Java Basics - Anfänger-Themen 7
M 2 dateien auf inhalt vergleichen ? Java Basics - Anfänger-Themen 3
M Vergleichen, ob eine Liste länger als andere ist Java Basics - Anfänger-Themen 6
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
J 2 listen vergleichen, die auch null Elemente haben können ! Java Basics - Anfänger-Themen 9
J ArrayList vergleichen im spiel Mastermind Java Basics - Anfänger-Themen 2
J Array.list vergleichen Java Basics - Anfänger-Themen 1
M 3 Zahlen miteinander vergleichen Java Basics - Anfänger-Themen 18
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
W LocalDate vergleichen mit Equals? Java Basics - Anfänger-Themen 7
S mehrere TreeSets so speichern, dass man sie miteinander vergleichen kann Java Basics - Anfänger-Themen 1
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
M String mit Variable vergleichen Java Basics - Anfänger-Themen 9
O Array mit einem Zeichen vergleichen Java Basics - Anfänger-Themen 1
S String mit Int input vergleichen Java Basics - Anfänger-Themen 5
S Den Minimumberechnen 2 codes vergleichen Java Basics - Anfänger-Themen 4
S Chars vergleichen ohne Betrachtung der Groß und Kleinschreibung Java Basics - Anfänger-Themen 7
S Aktuell beste Methode um zwei Bilder zu vergleichen..? Java Basics - Anfänger-Themen 1
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
districon Vergleichen von Objekten Java Basics - Anfänger-Themen 20
Bademeister007 Elemente aus zwei verschiedenen Arrays miteinander vergleichen und gegeben falls entfernen Java Basics - Anfänger-Themen 14
M Strings vergleichen Java Basics - Anfänger-Themen 10
J Zufallszahlen generieren und Werte vergleichen Java Basics - Anfänger-Themen 3
Stephan_kl Reihenwert-Berechnung, Ergebnis mit vorherigem Ergebnis vergleichen Java Basics - Anfänger-Themen 11
J Zwei Objekte vergleichen Java Basics - Anfänger-Themen 8
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
JaVaN0oB Wörterraten - Falsche Ausgabe, String/Chars vergleichen Java Basics - Anfänger-Themen 2
O String mit Character vergleichen Java Basics - Anfänger-Themen 3
S 2 Strings mit Equals vergleichen Java Basics - Anfänger-Themen 11
N 2D Arrays jedes xy vergleichen Java Basics - Anfänger-Themen 7
M Objekte mittels equals vergleichen Java Basics - Anfänger-Themen 14
J zwei String Arrays miteinander vergleichen Java Basics - Anfänger-Themen 18
F Eine Zahl mit Arrays vergleichen Java Basics - Anfänger-Themen 7
D Vergleichen von Strings Java Basics - Anfänger-Themen 6
M Objekte miteinander vergleichen Java Basics - Anfänger-Themen 18
M Matrix Elemente vergleichen Java Basics - Anfänger-Themen 11
I Alle Elemente von zwei Listen vergleichen Java Basics - Anfänger-Themen 1
R String vergleichen Java Basics - Anfänger-Themen 59
S Vergleichen ob der Integer der benutzt eingeben werden soll überhaupt ein int ist Java Basics - Anfänger-Themen 1
C System.in.read() Boolsche Werte vergleichen Java Basics - Anfänger-Themen 8
K Boolean in einer Methode um 2 Objekte zu vergleichen Java Basics - Anfänger-Themen 12
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
J Strings untereinander in einer Liste vergleichen Java Basics - Anfänger-Themen 18
E Zahlen von einem Array mit zahlen von zweitem Array vergleichen Java Basics - Anfänger-Themen 27
A Suffix vergleichen Java Basics - Anfänger-Themen 2
L Erste Schritte Elemente zwei Schlangen vergleichen Java Basics - Anfänger-Themen 14
PaperHat Objekte in Array vergleichen Java Basics - Anfänger-Themen 9
F Input/Output 2 Textdateien mit einander vergleichen Java Basics - Anfänger-Themen 11
N Zwei Strings mit "==" vergleichen warum TRUE Java Basics - Anfänger-Themen 2
M String vergleichen Java Basics - Anfänger-Themen 5
T Datentypen Kann Java 2 verschiedene Datentypen vergleichen? Java Basics - Anfänger-Themen 2
S Array, Geburtsdatum, Vergleichen Java Basics - Anfänger-Themen 28
F JList Elemente mit Strings vergleichen Java Basics - Anfänger-Themen 12
L Variablen Versionsnummern vergleichen Java Basics - Anfänger-Themen 5
N Methoden int[]'s vergleichen Java Basics - Anfänger-Themen 4
N Methoden HashMap interne Werte miteinander vergleichen Java Basics - Anfänger-Themen 7
T JPasswordFielder vergleichen Java Basics - Anfänger-Themen 16
K Datentypen Einträge zweier Matrizen vergleichen Java Basics - Anfänger-Themen 4
M Objekt mit Hashmap vergleichen Java Basics - Anfänger-Themen 22
S Werte in Liste mit Nachfolger vergleichen Java Basics - Anfänger-Themen 5
M Erste Schritte Mehrere eingaben in einer Line vergleichen (if equals...) Java Basics - Anfänger-Themen 6
J Zahlensequenz mit einer anderen Sequenz vergleichen Java Basics - Anfänger-Themen 6
P String größer kleiner gleich vergleichen Java Basics - Anfänger-Themen 6
H Bubblesort-Zwei Integer auf Dekade vergleichen. Java Basics - Anfänger-Themen 6
J Methoden BinaryStrings vergleichen Java Basics - Anfänger-Themen 12
C arrey mit string vergleichen Java Basics - Anfänger-Themen 2
K Methoden Passwort Bestätigungsfeld mit Password vergleichen Java Basics - Anfänger-Themen 7
M Wortteile im String vergleichen Java Basics - Anfänger-Themen 2
L Rekursiv zwei Strings vergleichen Java Basics - Anfänger-Themen 3
J Algorithmus - Strings auf eigene Reihenfolge miteinander vergleichen Java Basics - Anfänger-Themen 4
C Große Zahlen vergleichen Java Basics - Anfänger-Themen 19
? Methoden Boolean Wert vergleichen und einlesen Java Basics - Anfänger-Themen 1
K Comparable - Objekte aus Array vergleichen und größtes auswählen Java Basics - Anfänger-Themen 1
G Passwort und Passwort wiederholen in if-Abfrage vergleichen Java Basics - Anfänger-Themen 15
JavaNewbie2.0 String vergleichen Java Basics - Anfänger-Themen 4
M 2 Stellen in einem Array vergleichen und bei übereinstimmen eine davon ersetzen Java Basics - Anfänger-Themen 1
A Methoden Char-Arrays auf aufeinanderfolgende Elemente vergleichen! Java Basics - Anfänger-Themen 7
R Objekte Vergleichen und Sortieren Java Basics - Anfänger-Themen 3
A Werte innerhalb von resultset vergleichen Java Basics - Anfänger-Themen 2
J Zwei String-Variabeln vergleichen Java Basics - Anfänger-Themen 5
I Meta Tags vergleichen mit Html Vorgabe Java Basics - Anfänger-Themen 8
T Java gleichfarbige Pixel vergleichen Java Basics - Anfänger-Themen 5
B Arrayinhalt mit String vergleichen Java Basics - Anfänger-Themen 6
J Objekttypen vergleichen und filtern Java Basics - Anfänger-Themen 6
J 2 Arrays vergleichen (Unterschiedliche Längen) Java Basics - Anfänger-Themen 42
K Textdateien vergleichen optimieren Java Basics - Anfänger-Themen 9
R Zeichen in String vergleichen Java Basics - Anfänger-Themen 75
P Erste Schritte Mehrdimensoniales Array vergleichen Java Basics - Anfänger-Themen 2
S Methoden Vergleichen von zwei Listen in der Geschwindigkeit von O(n+m) Java Basics - Anfänger-Themen 32
B ArrayList vergleichen Java Basics - Anfänger-Themen 18
J Generics Datentypen vergleichen Java Basics - Anfänger-Themen 16
OlafHD String in einer If-Anweisung Vergleichen Java Basics - Anfänger-Themen 2
D Variablen Variable char vergleichen Java Basics - Anfänger-Themen 5
F String vergleichen Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben