Dateien kopieren, entpacken, XML auslesen!

big_killa

Mitglied
Hallo,

ich bräuchte Hilfe beim kopieren von einem Verzeichnis in mehrere Verzeichnisse, d.h. ich will von einem Server die Dateien auf einen Temp Ordner und in einen anderen Ordner kopieren. Außerdem möchte ich die Dateien die ich in Temp kopiere, temporär entpacken und eine Spalte von den XML Dateien auslesen.

Würde mich freuen wenn Ihr mir helfen könnt.

Ich bendanke mich im vorraus.

Mfg

Java:
package verschieben;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;

import org.joda.time.DateTime;
import org.joda.time.Days;

public class Dateien {
	// Verzeichnisse angeben
	File input = new File("X:\\2012");
	File output = new File("C:\\metin8y\\monstar");
	

	public Dateien() {

		// Verzeichnis vorhanden???
		if (!input.exists()) {
			System.out.println("Direcotry does not exists.");
			System.exit(0);
		} else {
			// Dateien kopieren
			try {
				copyFolder(input, output);
			} catch (IOException e) {
				e.printStackTrace();
				System.exit(0);
			}
		}
		System.out.println("Done");
	}

	public File getInput() {
		return input;
	}

	public void setInput(File input) {
		this.input = input;
	}

	public File getOutput() {
		return output;
	}

	public void setOutput(File output) {
		this.output = output;
	}

	// komplettes Verzeichnis (alle Ordner kopieren und verschieben) kopieren
	@SuppressWarnings("deprecation")
	public static void copyFolder(File input, File output) throws IOException {
		Datenbank db = new Datenbank();
		

		if (input.isDirectory()) {
			if (!output.exists()) {
				output.mkdir();
				System.out.println("Directory copied from " + input + "  to  " + "   " + output);
			}
			String files[] = input.list();
			for (String file : files) {
				File input2 = new File(input, file);
				File output2 = new File(output, file);
			
				// rekursiv kopieren
				copyFolder(input2, output2);
			}
		}
		
		else {
			InputStream in = new FileInputStream(input);
			OutputStream out = new FileOutputStream(output);
			byte[] buffer = new byte[1024];
			int length;
			while ((length = in.read(buffer)) > 0) {
				out.write(buffer, 0, length);
			}
			in.close();
			out.close();			

			// Die Archive-Elemente Zippen und mit subString die Namen erhalten
			ZipFile zipF = null;
			try {
				zipF = new ZipFile(input);
				Enumeration<? extends ZipEntry> enu = zipF.entries();
				while (enu.hasMoreElements()) {
					ZipEntry zipE = (ZipEntry) enu.nextElement();
					System.out.println("Dateiname    " + zipE.getName());
					// Datum, Name und Uhrzeit von Einzelnen Dateien
					String a = zipE.getName().substring(15, 23);
					String b = zipE.getName().substring(24, 30);
					String c = input.getName().substring(0, 5);

					// Verzeichnis-Datum
					String jahr = output.getName().substring(14, 18);
					String monat = output.getName().substring(18, 20);
					String tag = output.getName().substring(20, 22);

					// Differenz von Daten
					DateTime start = new DateTime(Integer.parseInt(jahr), Integer.parseInt(monat), Integer.parseInt(tag), 0, 0, 0, 0);
					DateTime end = new DateTime();
					Days days = Days.daysBetween(start, end);

					int difference = days.getDays();
					System.out.println("Differenz: " + difference);
					// Variable für die Anzahl der Tage, wie Lange die Dateien
					// in einem Archiv bleiben sollen.
					int x = 30;

					//File output3 = new File("C:\\metin8y\\Logs");
					// Nach 30 Tagen die Dateien verschieben
					if (difference > x) {
						output.renameTo(new File("C:\\metin8y\\Logs", output.getName()));
					} else {
					}

					// Überprüfen ob XD- oder DAS-File
					String d = "INDIA";
					if (c.equals(d)) {
						db.insert(input.getPath(), output.getPath(), "XD", zipE.getName(), a, b,"");
					} else {
						db.insert(input.getPath(), output.getPath(), "DAS", zipE.getName(), a, b,"");
					}
					System.out.println("File copied from: " + input + "  to:  " + output);
				}
			} catch (IOException ex) {
				System.out.println("Done");
			}

			finally {
				if (zipF != null) {
					zipF.close();
				}
			}
		}
	}

	public static void main(String[] args) throws IOException {
		Dateien d = new Dateien();
		Datenbank db = new Datenbank();
		System.out.println(d + "" + db);

	}
}

so sieht mein Code bisher aus!!!
 

Michael...

Top Contributor
Und das/die Probleme ist/sind?

Ein Fehler ist z.B:
[JAVA=83]while ((length = in.read(buffer)) > 0) {[/code]
Dazu ein Blick in die Doku:
public int read()
throws IOException

Reads a byte of data from this input stream. This method blocks if no input is yet available.

Specified by:
read in class InputStream
Returns:
the next byte of data, or -1 if the end of the file is reached.
Throws:
IOException - if an I/O error occurs.
read liefert -1 wenn das Ende des Streams erreicht ist, nicht irgendeinen Wert >0

[OT]Irgendwie stellt mein Firefox (16.0.1) die Zeilennummern im Code Block versetzt dar. Weiß jemand woran das liegt?[/OT]
 

big_killa

Mitglied
Danke Michael, das habe ich von einem Beispiel aus programmiert, so wie ich das programm gepostet habe funktioniert alles, das Problem ist grad, dass ich die dateien vom output in temp kopieren möchte. Das bekomme ich nicht auf die reihe!!!
 

Michael...

Top Contributor
Sorry, mein vorheriger Post ist Schmarrn.

Wo wird da was in temp kopiert? Was funktioniert nicht? Fehlermeldungen oder fehlerhaftes Verhalten?
 

big_killa

Mitglied
:D

das Problem liegt darin, dass ich die Daten von einem Server zuerst in einen Ordner kopiere, dass klappt auch soweit, nun soll ich die einzelnen Zips entpacken, noch ein problem ist, dass ich zuerst ein Sammelzip habe, dazu muss ich erst einmal das entpacken und dann die einzelnen Zips. Wenn du mir jetzt helfen könntest, wäre es super!!!
 

Michael...

Top Contributor
so ganz durchblicke ich den Code noch nicht.
Ich würde das ganze in mehr Methoden strukturieren, die einzelne Aufgaben abarbeiten. input nach output kopieren, zipfile auslesen, zipeinträge extrahieren...

Warum kopierst Du erst das input File in output, um dann doch wieder input als ZipFile auszulesen?#
Hab noch keine Stelle gefunden in der Du das zip File entpackst.
Warum soll dennin der "Zip" Schleife das outpufFile "dauernd" umbenannt werden?
...
 

big_killa

Mitglied
Also ich habe eine begrenzte Kapazität an Speicher daher will ich es vom server auf eine andere Festplatte zuerst kopieren. Das entpacken bekomme ich leider nicht hin, zwar kann ich temporär entpacken aber mehr nicht.

Was meinst du mit umbenennen??? Ich nenne hier nichts um, wenn du das mit dem "rename" meinst, dass tut meine Dateien verschieben nicht umbenennen.
 

Michael...

Top Contributor
Was ich meinte ist: Du iterierst über die zip Entries, vergleichst und arbeitest aber immer mit output. Oder habe ich da was übersehen und output wird innerhalb der Schleife eine neue Referenz zugewiesen?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Mehre Dateien parallel kopieren mit Multithreading Java Basics - Anfänger-Themen 8
B Dateien aus dem "resource" - Folder kopieren in Verzeichnis Java Basics - Anfänger-Themen 9
B Kopieren von Dateien mit Adminberechtigungen Java Basics - Anfänger-Themen 14
M Threads nio Dateien kopieren, Threads und Gui Java Basics - Anfänger-Themen 0
S Dateien in RAM kopieren und ausführen? Java Basics - Anfänger-Themen 4
S Dateien mittels Path(s) kopieren und umbenennen. Java Basics - Anfänger-Themen 4
B Erste Schritte Dateien ueber Netzwerk kopieren Java Basics - Anfänger-Themen 2
F Verzeichnisse und Dateien kopieren Java Basics - Anfänger-Themen 3
S Grosse Dateien kopieren/Verschieben Java Basics - Anfänger-Themen 14
S Dateien von einem Ordner in den anderen kopieren Java Basics - Anfänger-Themen 2
K Klonen und Kopieren von Dateien Java Basics - Anfänger-Themen 6
A Ordner + Dateien kopieren? Java Basics - Anfänger-Themen 2
S brauche hilfe beim dateien kopieren / bearbeiten Java Basics - Anfänger-Themen 3
A Dateien kopieren Java Basics - Anfänger-Themen 32
C Dateien aus JAR auf die Festplatte kopieren Java Basics - Anfänger-Themen 15
E Ganze Ordner und Dateien kopieren Java Basics - Anfänger-Themen 2
G Dateien anlegen, kopieren bzw. speichern Java Basics - Anfänger-Themen 5
bernd Richtige Pfadangabe für das Kopieren von Dateien Java Basics - Anfänger-Themen 10
$ dateien kopieren und öffnen?!?! Java Basics - Anfänger-Themen 2
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
I Dateien aus dem Resource Folder laden Java Basics - Anfänger-Themen 2
A Thread XML-Dateien zusammenfügen Java Basics - Anfänger-Themen 11
Buroto Threads Verschiedene .txt Dateien Auf Listen und Verbinden Java Basics - Anfänger-Themen 3
J Dateien lesen und schreiben Java Basics - Anfänger-Themen 5
B Jar Dateien ohne IDE verwenden? Java Basics - Anfänger-Themen 1
A Optimierung eines Programms: Mergen der Dateien Java Basics - Anfänger-Themen 23
A Zwei XML-Dateien Mergen Java Basics - Anfänger-Themen 14
A Input/Output Mehrere Csv-Dateien einlesen Java Basics - Anfänger-Themen 2
LetsSebi Dateien werden nicht in Zip gespeichert Java Basics - Anfänger-Themen 1
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
J Alle Dateien aus einem Verzeichnis laden Java Basics - Anfänger-Themen 10
MiMa log4j als separate Dateien in Schleife? Java Basics - Anfänger-Themen 6
M Scannen von *.txt - Dateien; wo sind der oder die Fehler? Java Basics - Anfänger-Themen 4
A Input/Output Dateien einlesen und ausgeben Java Basics - Anfänger-Themen 7
S Lese- / Schreibfähigkeit von Dateien sicherstellen Java Basics - Anfänger-Themen 1
C "HelloWorld" - Dateien erstellt, aber ist es eine class-Datei? Java Basics - Anfänger-Themen 2
J Java findet plötzlich die Dateien im Projekt nicht mehr. Java Basics - Anfänger-Themen 12
J Dateien in Verzeichnissen rekursiv auflisten wirft Exception Java Basics - Anfänger-Themen 4
L Classpath Alle Dateien im Classpath finden Java Basics - Anfänger-Themen 4
MiMa Formate für Dateien und Pfade? Java Basics - Anfänger-Themen 1
O Datei in mehrere kleine Dateien umwandeln Java Basics - Anfänger-Themen 47
L Richtige Reihenfolge der Dateien Java Basics - Anfänger-Themen 5
CptK Datentypen Text Dateien einlesen Java Basics - Anfänger-Themen 3
J Logging erzeugt zwei dateien.... Java Basics - Anfänger-Themen 7
A Dateien Verschieben Java Basics - Anfänger-Themen 1
C Methoden Dateien im Ordner anzeigen Java Basics - Anfänger-Themen 12
J Java-Dateien lassen sich nicht editieren Java Basics - Anfänger-Themen 46
E FTP Dateien hochladen Java Basics - Anfänger-Themen 3
J Probleme beim schreiben von Dateien Java Basics - Anfänger-Themen 5
Korvinus Vergleichen von 2 csv-Dateien Java Basics - Anfänger-Themen 2
I Texte mit Absätzen in Dateien speichern und auslesen Java Basics - Anfänger-Themen 1
M "substring()" mit Dateien und Pfadangaben Java Basics - Anfänger-Themen 5
Voreck Jar Dateien Standart programm ändern Java Basics - Anfänger-Themen 12
K Dateien aus Source-Package verwenden Java Basics - Anfänger-Themen 10
F Threads ftp4j, viele Dateien upload Java Basics - Anfänger-Themen 5
P Einen Ordner mit Dateien hochladen [FTP] Java Basics - Anfänger-Themen 2
X Dateien direkt hintereinander schreiben, Dateiname Java Basics - Anfänger-Themen 25
G Messwerte in 2 Dateien schreiben Java Basics - Anfänger-Themen 20
C Verarbeitung von sehr großen Dateien Java Basics - Anfänger-Themen 52
F Input/Output Dateien lesen/schreiben Java Basics - Anfänger-Themen 1
V Mehrere Dateien aus JFileChooser in eine ArrayList speichern Java Basics - Anfänger-Themen 2
K Dateien lesen | IndexOutOfBoundsException Java Basics - Anfänger-Themen 2
T Classpath Problem mit dem auslesen von Text-Dateien (Pfad) Java Basics - Anfänger-Themen 3
A attach source: Zusammenhang zwischen JAR und .class/.java Dateien? Java Basics - Anfänger-Themen 2
T .jar Datei als Ordner benutzen/ Dateien aus .jar Datei auslesen Java Basics - Anfänger-Themen 3
C Klassen Class Files nachladen (mehrer .jar Dateien) Java Basics - Anfänger-Themen 2
Bluedaishi for schleife um Dateien wieder zusammen zu fügen Java Basics - Anfänger-Themen 11
S Resourcen-Dateien im Jar-File verfügbar machen (Intellij 14) Java Basics - Anfänger-Themen 14
J Dateien für anderen User "mitgeben" Java Basics - Anfänger-Themen 1
S Dateien mit Java verschieben Java Basics - Anfänger-Themen 6
A Heap Space Error bei rekursiver Suche in Dateien trotz nur einer Zeile im Speicher Java Basics - Anfänger-Themen 26
E Dateien werden nicht gelöscht Java Basics - Anfänger-Themen 10
S Class Dateien decompilieren Java Basics - Anfänger-Themen 4
T Fehler beim Schreiben in Dateien! Java Basics - Anfänger-Themen 4
Bluedaishi Dateien Lassen sich unter windows nicht löschen Java Basics - Anfänger-Themen 8
Z Mehrere XML-Dateien zu einer zusammenfügen Java Basics - Anfänger-Themen 3
K JAR Dateien einbinden - funkt nicht wie es sollte... Java Basics - Anfänger-Themen 22
J *.sql Dateien in Java Java Basics - Anfänger-Themen 1
P Dateien im Ordner auflisten. Java Basics - Anfänger-Themen 3
P Compiler-Fehler .java Dateien kompilieren und .class Dateien zur .jar Java Basics - Anfänger-Themen 4
S Daten aus anderen Dateien in neue Datei einlesen Java Basics - Anfänger-Themen 3
M Input/Output Arbeiten mit extrem vielen Dateien Java Basics - Anfänger-Themen 8
R File chooser Dateien in frame anzeigen lassen Java Basics - Anfänger-Themen 5
N tar-Dateien Java Basics - Anfänger-Themen 6
B Methoden Dateien konvertieren Java Basics - Anfänger-Themen 3
L Dateien speichern/auslesen Java Basics - Anfänger-Themen 5
M Input/Output Probleme beim Parsen von CSV und TXT Dateien Java Basics - Anfänger-Themen 7
P Wiedereinstieg und kann keine Dateien mehr öffnen... Java Basics - Anfänger-Themen 13
F Classpath Dateien einbinden und Classpath durchsuchen Java Basics - Anfänger-Themen 2
N Java Programm zum Suchen und Ersetzen von Text Dateien Java Basics - Anfänger-Themen 10
S Dateien/LinkedList/StringBuffer - SOrtierung klappt nicht so ganz Java Basics - Anfänger-Themen 2
U Best Practice Nicht-permanente Links auf Dateien Java Basics - Anfänger-Themen 5
B In welchem (Default) Pfad erstellt Java Dateien? Java Basics - Anfänger-Themen 4
I Methoden zum lesen und speichern von Dateien Java Basics - Anfänger-Themen 2
B .ut dateien ignorieren und fortsetzen Java Basics - Anfänger-Themen 9
R Ressourcen in JAR-Dateien Java Basics - Anfänger-Themen 2
J jar Dateien global erreichbar machen Java Basics - Anfänger-Themen 3
L Zusammenführen mehrerer .txt Dateien Java Basics - Anfänger-Themen 4
M Dateien erstellen/ bearbeiten/ lesen Java Basics - Anfänger-Themen 9
O Java Dateien verschlüsseln? Java Basics - Anfänger-Themen 22

Ähnliche Java Themen

Neue Themen


Oben