zipdatei mit txtdatei vergleichen

Status
Nicht offen für weitere Antworten.

KimKaze

Aktives Mitglied
Hi,

ich habe eine txt datei gezippt und habe nun 2 dateien einmal
text.txt und
test.zip

nun möchte ich diese dateien vergleichen
sprich ich lese jede zeile aus text.txt ein und vergleich sie mit der zeile aus test.zip

leider liest er bei den zip dateien nur NULL ein...
woran liegt das?


Code:
public boolean pruefZip(File datei) {
		try {
			// datei = datei.txt
			FileReader eingabestrom = new FileReader(datei);
			BufferedReader intxt = new BufferedReader(eingabestrom);

			// zipdatei = datei.zip
			File zipdatei = new File(datei.toString().toLowerCase().replace(".txt", ".zip"));
			ZipInputStream zipinstream = new ZipInputStream(new FileInputStream(zipdatei));
			InputStreamReader inputStreamReader = new InputStreamReader(zipinstream);
			BufferedReader inzip = new BufferedReader(inputStreamReader);
			
			// vergleich der beiden dateien
			boolean fertig = false;
			String zipline; 
			String txtline;
			while (fertig != true) {
				zipline = inzip.readLine();
				System.out.println(zipline);
				txtline = intxt.readLine();
				System.out.println(txtline);
				if(txtline != null){
					if (!zipline.equals(txtline)) {
						return false;
					}
				} else {
					fertig = true;
				}	
			}
			eingabestrom.close();
			intxt.close();
			zipinstream.close();
			inputStreamReader.close();
			inzip.close();
			
			return true;
		} catch (Exception e) {
			System.out.println("<ZipProgramm:zippen> Fehler beim überprüfen der Datei " + datei);
		}
		return false;

	}
 

Marco13

Top Contributor
System.out.println("Dateiname: "+datei.toString().toLowerCase());
System.out.println("Zip-Name: "+datei.toString().toLowerCase().replace(".txt", ".zip"));
File zipdatei = new File(datei.toString().toLowerCase().replace(".txt", ".zip"));
System.out.println("Und gibt's die? "+zipdatei.exists());
 

lhein

Top Contributor
Also wenn Du die TXT Datei gezippt hast, also die Datei als ZipEntry in ein ZipFile gepackt hast, dann ist deine Ausleseroutine für die ZipDatei nicht korrekt.

Es sollte dann eher so aussehen...

Code:
        // create the zip stream
        ZipInputStream zis = new ZipInputStream(...your inputstream...);

        // read all entries
        ZipEntry entry = null;
        while ((entry = zis.getNextEntry()) != null) {

            String entryName = entry.getName();

            if (!entry.isDirectory()) {

               ...process the zip entry here...

               zis.closeEntry();
            } else {
                // skip directories
            }
        }
       
        // close the stream
        zis.close();
 

lhein

Top Contributor
KimKaze hat gesagt.:
ok, aber wo kann ich jetzt die zeilen einlesen die in der .txt datei stehen die gezippt wurde?

Das ist der Part, den ich mit dem Platzhalter "...process the zip entry here... " bezeichnet habe.
Wenn Du keine Ahnung hast, was zu tun ist, dann schau Dir mal die API Doku der Klasse ZipEntry an.
 

lhein

Top Contributor
Ok, die Beschreibung der Klasse ZipEntry bringt dich nicht direkt ans Ziel ;)
Aber ich denke mal mit ein wenig logischer Überlegung wärst Du jetzt irgendwann mal auf ZipInputStream oder ZipFile gekommen. Aus beiden kann man einen Stream für einen Entry bekommen. Diesen Stream kannst dann wieder in deinen BufferedReader packen und fertig ist der Lack.
 

KimKaze

Aktives Mitglied
ich weiss nicht ob ich gerade auf dem schlauch stehe aber ich komme und komme nicht weiter

Code:
ZipFile zipdatei = new ZipFile(datei.toString().toLowerCase().replace(".txt", ".zip"));
ZipInputStream zis = new ZipInputStream(new FileReader(zipdatei));
InputStreamReader inputStreamReader = new InputStreamReader(zis);
BufferedReader inzip = new BufferedReader(inputStreamReader);

ist natuerlich falsch
aber ich komm einfach nicht drauf
 

lhein

Top Contributor
KimKaze hat gesagt.:
ich weiss nicht ob ich gerade auf dem schlauch stehe aber ich komme und komme nicht weiter

Code:
ZipFile zipdatei = new ZipFile(datei.toString().toLowerCase().replace(".txt", ".zip"));
ZipInputStream zis = new ZipInputStream(new FileReader(zipdatei));
InputStreamReader inputStreamReader = new InputStreamReader(zis);
BufferedReader inzip = new BufferedReader(inputStreamReader);

ist natuerlich falsch
aber ich komm einfach nicht drauf

Die Klasse ZipFile ist in der Lage, einen InputStream für einen ZipEntry zu liefern. Also warum holst Du Dir nicht den passenden Entry, läßt Dir dazu den InputStream geben und dann mit einem BufferedReader wrappen ?
 

KimKaze

Aktives Mitglied
Meine Lösung sieht nun im endeffekt so aus:

Code:
// datei = datei.txt
FileReader eingabestrom = new FileReader(datei);
BufferedReader intxt = new BufferedReader(eingabestrom);
			
// zipdatei = datei.zip			
File zipf = new File(datei.toString().toLowerCase().replace(dateiendung, ".zip"));
ZipInputStream zis = new ZipInputStream(new FileInputStream(zipf));
ZipEntry entry = zis.getNextEntry(); // Entry von der datei.zip erstellen
ZipFile  file  = new ZipFile(datei.toString().toLowerCase().replace(dateiendung, ".zip"));
InputStream input = file.getInputStream(entry); //inputstream von der zipdatei erstellen
InputStreamReader inputStreamReader = new InputStreamReader(input);
BufferedReader inzip = new BufferedReader(inputStreamReader);

danke für die hilfe

gruß

kimkaze
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Ordner in ZipDatei erstellen Allgemeine Java-Themen 3
B ZipDatei direkt online auslesen? Allgemeine Java-Themen 8
platofan23 Wie .txtDatei im Java Eclipse-Projekt bzw. in der Jar speichern? Allgemeine Java-Themen 7
V txtDatei nicht zeilenweise, sondern blockweise einlesen Allgemeine Java-Themen 19
Ü Arrays vergleichen Allgemeine Java-Themen 59
Ü Methoden Arrays vergleichen - Methode Allgemeine Java-Themen 1
D Zwei Listen vergleichen Allgemeine Java-Themen 7
F 2 JsonArray vergleichen, geht es auch einfacher ? Allgemeine Java-Themen 3
N String vergleichen. Allgemeine Java-Themen 27
B Einfach Elemente zweier Arraylisten kreuz und quer vergleichen, min und max Problem? Allgemeine Java-Themen 16
Aboya Char Array rekursiv vergleichen Allgemeine Java-Themen 15
Curtis_MC Pointer mit ArrayList vergleichen Allgemeine Java-Themen 6
P einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen Allgemeine Java-Themen 2
D Erste Schritte Arrays vergleichen und die zahlen die nur einmal vorkommen ausgeben Allgemeine Java-Themen 5
E Elemente innerhalb einer ArrayList vergleichen Allgemeine Java-Themen 33
R Optimierung beim Vergleichen von 2 Bildern Allgemeine Java-Themen 23
CptK Input/Output Buttonwerte vergleichen Allgemeine Java-Themen 5
J Mockito - Objekte miteinander vergleichen (equals) Allgemeine Java-Themen 6
Meeresgott Best Practice Strings auf Inhalte vergleichen Allgemeine Java-Themen 1
N DNA Strings vergleichen Allgemeine Java-Themen 1
C Input/Output Textdateien vergleichen Allgemeine Java-Themen 3
M Dateien nach kopieren vergleichen Allgemeine Java-Themen 9
KeVoZ_ JSoup - Website Inhalt/Element mit String vergleichen Allgemeine Java-Themen 2
K Eingabe mit Char vergleichen klappt nicht! Allgemeine Java-Themen 2
AssELAss Best Practice Checksumme über jede Spalte zweier Tabellen und vergleichen Allgemeine Java-Themen 3
AssELAss Zwei Arrays / ArrayLists inhaltlich vergleichen Allgemeine Java-Themen 2
W Variablen Dates vergleichen Allgemeine Java-Themen 7
A Collections Inhalt einer Liste mit Inhalt anderer Liste vergleichen ? Allgemeine Java-Themen 7
J Farben mit comparing vergleichen Allgemeine Java-Themen 3
Dechasa Java 8 - Datum vergleichen Allgemeine Java-Themen 5
S Zwei String vergleichen, Fehler markieren Allgemeine Java-Themen 3
Dechasa Vergleichen von zwei Arrays Allgemeine Java-Themen 4
H Strings vergleichen Allgemeine Java-Themen 9
Y inhalte aus 2 unterschiedlichen Arrays miteinander vergleichen Allgemeine Java-Themen 12
D Pattern mit Pattern vergleichen Allgemeine Java-Themen 3
2 Joda Time - Localtime mit anderer Zeit vergleichen? Allgemeine Java-Themen 1
A Kann String nicht vergleichen (Android) Allgemeine Java-Themen 4
F Zwei LinkedHashMaps iterieren und vergleichen Allgemeine Java-Themen 2
D Variablen java.io.File zum vergleichen abspeichern Allgemeine Java-Themen 1
7 6 int variablen vergleichen Allgemeine Java-Themen 34
E Lesen von mehrere Csv-Datei und ihre Inhalte vergleichen Allgemeine Java-Themen 3
R Int werte vergleichen und Anzahl Paare ausgeben Allgemeine Java-Themen 4
OnDemand Spalten vergleichen Java Allgemeine Java-Themen 25
C Rechenzeit verschiedener Algorithmen vergleichen Allgemeine Java-Themen 4
OnDemand Dateien einlesen und vergleichen Allgemeine Java-Themen 1
L Zwei Files miteinander vergleichen und Grafisch darstellen Allgemeine Java-Themen 1
S String vergleichen Allgemeine Java-Themen 1
T Zwei Wortendungen vergleichen ohne .equals Allgemeine Java-Themen 10
N Variablen Positionen vergleichen ??? Allgemeine Java-Themen 2
A Bilder vergleichen auf gleichheit oder ähnlichkeit Allgemeine Java-Themen 8
J XML Dateien vergleichen Allgemeine Java-Themen 9
X Collections Hashmaps vergleichen Allgemeine Java-Themen 23
BRoll Image RGB Werte auslesen und vergleichen Allgemeine Java-Themen 8
S Zwei Comparable (compareTo) vergleichen Allgemeine Java-Themen 6
A PDF Content vergleichen Allgemeine Java-Themen 3
M Datentypen Referenzen oder seperate IDs vergleichen? Allgemeine Java-Themen 6
D Strings vergleichen; Komma ignorieren Allgemeine Java-Themen 3
J String nur erste Zeichen vergleichen Allgemeine Java-Themen 6
S Reports vergleichen Allgemeine Java-Themen 8
V ArrayList vergleichen mit .equals? Allgemeine Java-Themen 13
T Wörter Vergleichen Allgemeine Java-Themen 3
T Uhrzeiten vergleichen Allgemeine Java-Themen 4
P JAVA Bilder/Videos in Form von Files vergleichen Allgemeine Java-Themen 7
S Strings vergleichen Allgemeine Java-Themen 11
9 Dateinamen erfassen und vergleichen Allgemeine Java-Themen 6
S String Zeichen für Zeichen vergleichen Allgemeine Java-Themen 4
D String mit Wörterbuch vergleichen Allgemeine Java-Themen 12
I Input/Output Zeichenkette eingeben und vergleichen Allgemeine Java-Themen 2
Landei Hilfsklasse zum Vergleichen Allgemeine Java-Themen 5
S Datum vergleichen - ohne Hilfsmittel Allgemeine Java-Themen 8
1 zwei Strings vergleichen Allgemeine Java-Themen 16
F Vergleichen von Datumswerten Allgemeine Java-Themen 3
S Ergebnis von Cursor c1 mit Cursor c2 vergleichen Allgemeine Java-Themen 3
G Zwei bytes vergleichen Allgemeine Java-Themen 2
S Fixe Zahlen vergleichen Allgemeine Java-Themen 4
M Zeitangaben vergleichen Allgemeine Java-Themen 2
MonsterBit 2 Werte aus 2 Array vergleichen Allgemeine Java-Themen 10
1 String mit contains vergleichen (ignore case) Allgemeine Java-Themen 2
Developer_X Problem mit String vergleichen Allgemeine Java-Themen 3
Z zwei Daten vergleichen Allgemeine Java-Themen 4
nrg Leere Objektreferenz mit != null vergleichen Allgemeine Java-Themen 4
ARadauer PDF Vergleichen Allgemeine Java-Themen 16
S Alle Elemente von zwei Listen vergleichen Allgemeine Java-Themen 10
O Probleme beim vergleichen von 2 Datumsangaben Allgemeine Java-Themen 2
N 2 files auf gleichheit vergleichen Allgemeine Java-Themen 5
V Datum vergleichen Allgemeine Java-Themen 7
T Shapes vergleichen? Zeichen erkennen? Allgemeine Java-Themen 7
S Datei auf Server mit lokaler Datei vergleichen Allgemeine Java-Themen 4
M Warum Strings mit equals vergleichen... Allgemeine Java-Themen 6
G Datum vergleichen Allgemeine Java-Themen 5
A zwei listen vergleichen und unterschiede anzeigen Allgemeine Java-Themen 3
J Inhalt von HashMap vergleichen Allgemeine Java-Themen 3
S Anfänger: 2 Objekte vergleichen? Allgemeine Java-Themen 8
Y Mal wieder vergleichen von Strings.[Leider noch ein Problem] Allgemeine Java-Themen 18
S 2 URIs vergleichen Allgemeine Java-Themen 4
C Viele Informationen aus zwei Collections vergleichen Allgemeine Java-Themen 2
QDog beliebige Objekte vergleichen Allgemeine Java-Themen 2
G schnell Strings vergleichen Allgemeine Java-Themen 4
V Zwei ArrayList(s) vergleichen Allgemeine Java-Themen 6
D Vergleichen von Datensätzen Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben