Daten kopieren

Status
Nicht offen für weitere Antworten.

cotty

Mitglied
Schon wieder ich!

Gibt es einen einfachen Befehl, der eine Datei von einem Ordner zum anderen kopiert?

Habe schon so einiges gefunden:

Code:
RandomAccessFile original = new RandomAccessFile(originaldatei,"r");
RandomAccessFile dateikopie = new RandomAccessFile(kopiederdatei, "rw");
while (neudatei.length() < datei.length()) 
{
  dateikopie.write(datei.read());
}
original.close();
dateikopie.close();


Code:
record = new RandomAccessFile(originaldatei, "r" );
RandomAccessFile record;
for ( String res; (res=record.readLine()) !=null; )
{
String s1 = s2 + System.getProperty("line.separator");
BufferedWriter buffy = new BufferedWriter(new FileWriter(kopie, true));
wrecord.write(buffy);
wrecord.close();
}


Code:
BufferedInputStream in = new BufferedInputStream(new FileInputStream(originaldatei));
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(kopie, true));

aber das dauert ewig, da ich Datensätze von ca. 2-4 GB kopieren muss und alleine die Testdatei (16MB) geschlagene 2-4Minuten braucht!

Gruß Cotty
 

Leroy42

Top Contributor
cotty hat gesagt.:
aber das dauert ewig...

weil du im ersten Beispielcode die JVM zwingst, die Datei byteweise auszulesen
und für jedes einzelne Byte auf die Festplatte zuzugreifen.

(Dein 2. Codebeispiel wollen wir am besten ganz schnell vergessen :cool: )

Benutze einen BufferedInputStream zu Lesen und einen BufferedOutputStream zum Schreiben
und versuch' gar nicht erst, dir während des Kopierens eine Tasse Tee zu kochen. :cool:
 

Wildcard

Top Contributor
Dateien die größer als ein paar tausend Byte sind kopiert man mit Abstand am schnellsten mit FileChannel#map
 

cotty

Mitglied
Leroy42 hat gesagt.:
Benutze einen BufferedInputStream zu Lesen und einen BufferedOutputStream zum Schreiben
und versuch' gar nicht erst, dir während des Kopierens eine Tasse Tee zu kochen. :cool:

Das mit dem Tee ist so ne Sache bei mir.. Kaffe! a) hält der wach b) schmeckt der besser c) geht der schneller, ich hab so ne tolle Tassimo von meinen Eltern bekommen.. ob die denken, das ich schwul bin? Ich will doch nicht Mal einen Handwerker bekommen -.-

back to topic: Hab ich deinen Vorschlag nicht schon getestet? War doch eigentlich der letzte Eintrag.. oder?



Wildcard hat gesagt.:
Dateien die größer als ein paar tausend Byte sind kopiert man mit Abstand am schnellsten mit FileChannel#map

Hab dein "FileChannel#map" Mal gegoogelt (wär' Mal was für den Duden: googeln als Verb ^^) und bin wieder auf dieses Forum und meine entsprechende Unsauberkeit beim bisherigen suchen gestoßen.
Jedenfalls habt ihr hier doch schon einiges hübsches zusammengestellt. Nur hab ich bisher noch keinen Punkt gefunden, wo man die zu kopierenden Daten eintragen soll...
 
G

Guest

Gast
Hi,

mit FileChannel kopieren ist eigentlich ziemlich einfach hier mal ne Methode, die ich mir für ein Projekt mal geschrieben hab als Beispiel:

Code:
   public static void copyFile(final File from, final File to) {
      try {
         final FileChannel in = new FileInputStream(from).getChannel();
         final FileChannel out = new FileOutputStream(to).getChannel();

         out.transferFrom(in, 0, in.size());

         in.close();
         out.close();

         SKGlobals.debug(from.getPath() + " erfolgreich nach " + to.getPath() + " kopiert - OK");
      } catch (FileNotFoundException fnfe) {
         // Beliebige Fehlerbehandlung
      } catch (IOException ioe) {
         // Beliebige Fehlerbehandlung
      }
   }

Du hast ja die zu kopierende Datei (Fileobjekt), zusätzlich legst du dir noch ein Fileobjekt für die Zieldatei an. Von den beiden Fileobjekten host du dir den FileChannel und sagst dann dem FileChannel der Zieldatei FileChannel#transfer(FileChannel, int, int) und schließt beide FileChannels wieder. Schon bist du fertig.
 
G

Guest

Gast
Vergiss bitte die SKGlobas-Zeile, hab die beim Bereinigen des Code übersehen :oops:
 

cotty

Mitglied
Danke für den Code! Ist nachvollziehbar.

Hab das ganze in mein Programm eingefügt. Nur leider passiert da bei mir rein garnichts... Deshalb hab ich mir ein paar System.out.println()-Meldungen eingebaut.. Nur erscheinen die auch überhaupt nicht! Also liegt es nicht am Programm, sondern an mir! ich bin eindeutig zu dämlich!

Also wenn mir jetzt noch jemand nen kurzen Grundkurs für Java geben könnte, wär ich glücklich!

Nein, Spaß bei Seite, was mach ich falsch?

Code:
import java.io.*;
import java.lang.*;
import java.nio.channels.*;

public class eingabeprogramm
{
  public static void main( String[] args )
  {
   //hier funktioniert alles, deshalb lass ich die Zeilen weg!
  }

public static void copyFile(final File from, final File to) 
  {
  // und hier ist das Programm von oben
  }
}

Ich sitzt jetzt schon seit gestern Abend an dem Mist.. Solangsam muss ich meinen Kaffe-Konsum bremsen, sonst lande ich noch mit einer Coffein-Intox im Krankenhaus..
 

Leroy42

Top Contributor
cotty hat gesagt.:
Solangsam muss ich meinen Kaffe-Konsum bremsen, sonst lande ich noch mit einer Coffein-Intox im Krankenhaus..

Dann versuch's doch wenigstens mal mit 'ner Tasse Tee :cool:

Du hast dein Code soweit vorm Posten gekürzt, daß man gar nichts mehr sieht" :shock:

Wenn du keine Ausgaben bekoMmst:

1. Rufst du die copyFile - Methode überhaupt auf?
2. Ersetze Gast's Zeilen
Code:
// Beliebige Fehlerbehandlung
durch vernünftige System.out.printlns
 

The_S

Top Contributor
um halb 3 is dein bett fällig??? Dein Leben will ich ham, wenn du dich um halb 3 ins Bett legen kannst :lol:
 

Leroy42

Top Contributor
Hobbit_Im_Blutrausch hat gesagt.:
Dein Leben will ich ham, wenn du dich um halb 3 ins Bett legen kannst :lol:

Ich eher nicht (wohlgemerkt: Um halb 3 nachmittags). :(

Da erinnere ich mich eher gerne an den Lebensabschnitt, als ich
um die Uhrzeit aufgestanden bin. :D
 

cotty

Mitglied
Das nicht.. hab euch aber trotzdem lieb :D

@ Hobbit Im Blutrausch:

Sag Mal.. Bist du in der CoD2-Community aktiv?


@ alle anderen..

Ich weiß, dass das nix mit Java zu tun hat ;)
 

The_S

Top Contributor
Für sowas kannste mir normal ne PN schicken, dann störts die Anderen auch net ;) .

Und nein, ich bin da nicht aktiv, wenn überhaupt dann UT2k4 Gelegenheitsspieler.
 

cotty

Mitglied
Najut.. Ich glaub ich hab dir ne PM geschrieben ;)

Das Programm läuft so weit.. Also: Alles wird gut!

Ich bedanke mich wie immer für die Hilfe!

Gruß Cotty
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Kopieren von Array-Daten Java Basics - Anfänger-Themen 6
T Unvollständige Daten in der TableView Java Basics - Anfänger-Themen 8
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
W Daten in Echtzeit übernehmen Java Basics - Anfänger-Themen 5
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
E fehlermeldung bei richtigen login daten Java Basics - Anfänger-Themen 7
C Java Funktion: externe Daten vom Internet einbinden Java Basics - Anfänger-Themen 2
P Schiebefix - ArrayList überschreibt Daten Java Basics - Anfänger-Themen 3
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
E Wie gebe ich alle Daten zwischen zwei Zeitpunkten aus? Java Basics - Anfänger-Themen 2
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
M Tabellen- Daten laden Java Basics - Anfänger-Themen 2
A Klasse um daten zu einlesen Java Basics - Anfänger-Themen 26
A Literale für primitive Daten Typen Java Basics - Anfänger-Themen 4
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D Sportwetten Daten Atomatisch analysieren um optimale Strategie zu erhalten Java Basics - Anfänger-Themen 6
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
Shallty Daten speichern und ändern? Java Basics - Anfänger-Themen 32
M Sqlite table löschen und daten einfügen Java Basics - Anfänger-Themen 5
S Binäre-Suche bei unsortierten Daten Java Basics - Anfänger-Themen 7
N Was passiert wenn wir Daten auf der Festplatte abspeichern wollen? bzgl. BufferStreams Java Basics - Anfänger-Themen 9
T Daten von Objekten speichern Java Basics - Anfänger-Themen 7
A Minesweeper - Daten Java Basics - Anfänger-Themen 46
A Eingelesene Daten in Array(Liste) abspeichern? Java Basics - Anfänger-Themen 18
S Daten aus zwei Verschiedenen Tabellen in eine ArrayListe Java Basics - Anfänger-Themen 4
WPS1000 Input/Output Wie aktiviere ich den Daten Transfer von der RS232 in meine Java Applikation Java Basics - Anfänger-Themen 2
R Eigenes Protokoll zur Übermittlung von Daten zum Webserver? Java Basics - Anfänger-Themen 4
A Reader wohin werden Daten gespeichert? Java Basics - Anfänger-Themen 7
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
S Daten aus eigenständiger .class-Datei abrufen Java Basics - Anfänger-Themen 1
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
M jTabel mit Daten Füllen Java Basics - Anfänger-Themen 5
M Wie erzeuge ich die Differenz von zwei Daten in Stunden?? Java Basics - Anfänger-Themen 2
S Daten lesen und speichern Java Basics - Anfänger-Themen 26
S JTable mit Daten füllen Java Basics - Anfänger-Themen 7
L Java Programm zum Auswerten von Daten Java Basics - Anfänger-Themen 11
H Passwortmanager, Sicherheit der Daten Java Basics - Anfänger-Themen 12
G Best Practice Wie große "Tabellen" effizient durchsuchen und Daten händeln? Java Basics - Anfänger-Themen 15
U Daten aus Datei einlesen Java Basics - Anfänger-Themen 4
M Best Practice Daten-Import /Trabsfomration aus Textdatei Java Basics - Anfänger-Themen 12
R JTable Suchfunktion mit SQL Daten Java Basics - Anfänger-Themen 2
E Daten gehen nicht in Datenbank Java Basics - Anfänger-Themen 14
M Erste Schritte Speichern von mehreren Daten Java Basics - Anfänger-Themen 3
J Daten einer Textdatei in ein JTable importieren. Java Basics - Anfänger-Themen 3
F Daten von Thread an den aufrufenden zurückgeben Java Basics - Anfänger-Themen 22
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
N Erste Schritte Dedicated Server \ Senden und Empfangen von Daten/Befehlen Java Basics - Anfänger-Themen 2
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
D NPE beim laden von Daten aus MySQL Java Basics - Anfänger-Themen 9
P Einlesen von Daten via BufferedReader Java Basics - Anfänger-Themen 4
P Methoden ausgelesene (CSV-) Daten in Liste einer anderen Klasse einlesen Java Basics - Anfänger-Themen 0
F Daten aus Excel-Tabelle in Java importieren Java Basics - Anfänger-Themen 15
F Http Post von mehreren Daten Java Basics - Anfänger-Themen 5
F Daten auf Webserver laden - wiederholen bei Fehler Java Basics - Anfänger-Themen 0
W Best Practice problemabhängige Persistentmachung von Daten Java Basics - Anfänger-Themen 6
P Daten von Internetseite auslesen Java Basics - Anfänger-Themen 10
N Daten/Formular per POST an Firefox/Browser senden Java Basics - Anfänger-Themen 7
D Daten mit Apache POI in eine Excel Datei schreiben Java Basics - Anfänger-Themen 5
T JTable Daten aus txt datei Java Basics - Anfänger-Themen 3
T printf Daten aus der Tabelle in Excel übernehmen Java Basics - Anfänger-Themen 5
P zweidimensionales Array anlegen und mit DB-Daten füllen Java Basics - Anfänger-Themen 14
V Einlesen von Daten Java Basics - Anfänger-Themen 8
J TableView zeigt keine Daten an Java Basics - Anfänger-Themen 14
J Daten im Programm speichern Java Basics - Anfänger-Themen 14
N Interface Daten einem Implementierten Interface zuweisen Java Basics - Anfänger-Themen 37
O Probleme mit CSV Daten Java Basics - Anfänger-Themen 10
M Arrays: Trennung von Daten und Darstellung Java Basics - Anfänger-Themen 1
S Daten aus Array in Klasse übertragen Java Basics - Anfänger-Themen 12
M Wie sicher sind Daten im Java Programm? Java Basics - Anfänger-Themen 9
R Daten via Post an php Script senden Java Basics - Anfänger-Themen 1
B Probleme bei "Daten in CSV File schreiben". Java Basics - Anfänger-Themen 9
C Datei mit Daten einlesen und höchsten wert der zweiten Spalte ermitteln Java Basics - Anfänger-Themen 1
W (XML/XSL) Daten aus Eclipse in eine Klasse Laden. Java Basics - Anfänger-Themen 1
I Daten speichern ohne Datenbank Java Basics - Anfänger-Themen 20
D Daten von einem int in einen string Java Basics - Anfänger-Themen 5
L Daten aus Array Feld löschen Java Basics - Anfänger-Themen 2
T Input/Output Daten/Objekte einfach speichern Java Basics - Anfänger-Themen 5
IngoF GUI mit Thread Daten austauschen. Java Basics - Anfänger-Themen 6
S Daten aus anderen Dateien in neue Datei einlesen Java Basics - Anfänger-Themen 3
fLooojava Daten im selben Netzwerk an IP Java Basics - Anfänger-Themen 1
M Junit Tests durchführen, die eine Verbindung zu einer Daten erfordern Java Basics - Anfänger-Themen 3
K HashMap mit Daten aus ArrayList befüllen Java Basics - Anfänger-Themen 14
P Daten auslesen und in CSV speichern Java Basics - Anfänger-Themen 6
J Daten aus zweiter Klasse importieren Java Basics - Anfänger-Themen 33
C Daten speichern und laden Java Basics - Anfänger-Themen 6
S Je nach erhaltene Daten unterschiedlich reagieren (Design Pattern?) Java Basics - Anfänger-Themen 3
J Daten von einer PHP Datei ablesen Java Basics - Anfänger-Themen 1
B Klassen Zugriff auf Daten der Child-Klasse Java Basics - Anfänger-Themen 9
K Daten (im Sinne von Datum) aus Webseiten extrahieren Java Basics - Anfänger-Themen 6
S Erste Schritte Tage zwischen 2 Daten berechnen Java Basics - Anfänger-Themen 6
A daten vom 1d array in 2d matrix speichern Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben