Dateien mit der Java-Files-Klasse kopieren

JavaBeginner
Jetzt üben

Einführung

In diesem Lab lernst du, wie du in Java eine Datei in eine andere Datei kopierst. Es gibt mehrere Möglichkeiten, eine Datei zu kopieren, wie zum Beispiel die Verwendung von FileInputStream, FileOutputStream und der Files-Klasse. Hier werden wir uns auf die Files-Klasse konzentrieren, die einfacher zu verwenden ist, da sie eine copy()-Methode bietet, die die Quelldatei sofort in die Zieldatei kopiert.

Importiere erforderliche Bibliotheken

In der neuen Java-Datei importiere die erforderlichen Bibliotheken mit dem folgenden Code:

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.File;
import java.io.FileInputStream;

Erstelle ein Dateiobjekt

Erstelle ein Dateiobjekt, das auf die Quelldatei zeigt, die kopiert werden muss.

File source = new File("sourceFile.txt");

Erstelle ein Ziel-Dateiobjekt

Erstelle ein Zieldateiobjekt, das auf die Datei zeigt, in die du die Daten aus der Quelldatei kopieren möchtest.

File destination = new File("destinationFile.txt");

Verwende die Files-Klasse, um die Daten zu kopieren

Verwende die Files-Klasse, um die Daten von der Quelldatei in die Zieldatei zu kopieren. Hierzu kannst du die copy()-Methode der Files-Klasse verwenden.

Path sourcePath = Paths.get(source.getAbsolutePath());
OutputStream destinationStream = new FileOutputStream(destination);
Files.copy(sourcePath, destinationStream);

Verwende FileInputStream und FileOutputStream, um die Daten zu kopieren

In dieser Methode werden wir FileInputStream und FileOutputStream verwenden, um die Daten zu kopieren. Verwende den folgenden Code, um Daten aus der Quelldatei zu lesen und Daten mit der write()-Methode der FileOutputStream zu schreiben.

FileInputStream sourceStream = new FileInputStream(source);
FileOutputStream destinationStream = new FileOutputStream(destination);

byte[] buffer = new byte[1024];
int bytesRead;

while ((bytesRead = sourceStream.read(buffer)) > 0) {
    destinationStream.write(buffer, 0, bytesRead);
}

sourceStream.close();
destinationStream.close();

Kompiliere das Programm

Öffne ein Terminal und navigiere zum Verzeichnis ~/project. Kompiliere das Programm mit dem folgenden Befehl:

javac CopyFile.java

Führe das Programm aus

Führe das Programm mit dem folgenden Befehl aus:

java CopyFile

Zusammenfassung

In diesem Lab hast du gelernt, wie du Daten von einer Datei in eine andere Datei kopieren kannst, indem du die Files-Klasse sowie FileInputStream und FileOutputStream verwendest. Die Files-Klasse ist einfacher zu verwenden, da sie eine copy()-Methode bietet, die die Daten sofort kopiert. Mit FileInputStream und FileOutputStream kannst du die Daten auch manuell lesen und schreiben, um sie zu kopieren.