In einigen Szenarien müssen Sie eine Datei in Java kopieren. Möglicherweise erstellen Sie ein einfaches Skript, um Prozesse für einen Dateimanager zu automatisieren. Sie könnten sogar eine vollwertige Anwendung schreiben, die mit Dateien arbeitet.

Es gibt viele Möglichkeiten, wie Sie eine Datei kopieren können, abhängig von Ihrer erforderlichen Leistung, Einfachheit oder sogar von der verwendeten Java-Version.

So kopieren Sie Dateien mit FileInputStream und FileOutputStream

Bei dieser Methode wird jedes Datenbyte manuell aus der Datei gelesen und an ein neues Ziel geschrieben. Im Gegensatz zur folgenden Files.copy-Methode können Sie diese Methode für alle Java-Versionen verwenden, einschließlich Java 6 und früher.

Es verwendet die FileInputStream-Klasse, um Bytes aus einer Quelldatei zu lesen, und FileOutputStream, um Bytes an das Ziel zu schreiben.

  1. Erstellen Sie irgendwo auf Ihrem Computer eine Datei mit dem Namen "SimpleScript.java".
  2. Öffnen Sie die Datei in einem Texteditor oder einer IDE und kopieren Sie den folgenden Basiscode in die Anwendung.
    instagram viewer
    importieren java.io. IOException;

    KlasseSimpleScript{
    ÖffentlichkeitstatischLeerehauptsächlich(String-Argumente[])wirft IOException {
    // Ihr Code hier
    }
    }

  3. Importieren Sie diese zusätzlichen Input Stream- und Output Stream-Klassen am Anfang der Datei, direkt nach der ersten import-Anweisung.
    importieren java.io. Datei;
    importieren java.io. Eingabestrom;
    importieren java.io. Ausgabestrom;
    importieren java.io. FileInputStream;
    importieren java.io. FileOutputStream;
  4. Erstellen Sie eine neue Datei mit dem Namen "Copy-File-1.txt" im selben Ordner wie Ihre SimpleScript.java-Datei. Fügen Sie beliebige schriftliche Inhalte in die Datei ein.
  5. Erstellen Sie im selben Ordner auch ein neues Verzeichnis mit dem Namen "Destination". Ziel ist es, die Datei „Copy-File-1.txt“ in den neuen Ordner zu kopieren.
  6. Verwenden Sie innerhalb der Hauptfunktion der Klasse die Dateiklasse, um zwei neue Dateiobjekte zu erstellen. Die Quelle, die die Datei ist, die Sie kopieren möchten, und das Ziel, das der Ort ist, an den Sie die Datei kopieren möchten. Wenn die Zieldatei nicht existiert, erstellt Ihr Programm eine neue.
    KlasseSimpleScript{ 
    ÖffentlichkeitstatischLeerehauptsächlich(String-Argumente[])wirft IOException {
    // 1. Möglichkeit, eine Datei zu kopieren
    Dateiquelle = Neu File("Copy-File-1.txt");
    Dateiziel = Neu File("Destination/Copy-File-1.txt");
    }
    }
  7. Erstellen Sie danach ein InputStream- und ein OutputStream-Objekt.
    InputStream-Eingabe = Null;
    OutputStream-Ausgabe = Null;
  8. Verwenden Sie den Eingabestream, um die Daten in Bytes zu lesen, und den Ausgabestream, um die Daten an die neue Position zu schreiben.
    Versuchen {
    // FileInputStream- und FileOutputStream-Objekte erstellen
    Eingabe = Neu FileInputStream (Quelle);
    Ausgang = Neu FileOutputStream (Ziel);
    Byte[] buf = NeuByte[1024];
    int bytesLesen;

    // Bytes zum Ziel schreiben
    während ((bytesRead = input.read (buf)) > 0) {
    output.write (buf, 0, bytesRead);
    }
    } Fang (IOException e) {
    e.printStackTrace();
    System.out.println("Die Datei konnte nicht an das Ziel kopiert werden: " + destination.getPath() + ". Prüfen wenn der Ordner oder die Datei existiert bereits.");
    } endlich {
    // Schließen Sie die Streams
    wenn (Eingabe != Null) {
    input.close();
    }

    wenn (Ausgabe != Null) {
    Ausgang.Schließen ();
    }
    }

    System.out.println("Datei kopiert");

  9. Um das Skript auszuführen, öffnen Sie eine Befehlszeile. Navigieren Sie mit dem cd-Befehl in den Ordner, in dem Sie Ihre Java-Datei gespeichert haben Windows-Eingabeaufforderung oder das Mac-Terminal.
    CD Schreibtisch
  10. Um das Skript zu kompilieren, speichern Sie die Java-Datei und führen Sie die Javac Befehl in der Kommandozeile:
    javac SimpleScript.java
  11. Verwenden Sie zum Ausführen des Skripts die Java Befehl:
    Java-SimpleScript
    Sie sollten eine einzelne Ausgabezeile ohne Fehler sehen:
  12. Navigieren Sie zu Ihrem "Ziel"-Ordner, um Ihre kopierte Datei anzuzeigen.
  13. Öffnen Sie die Datei, um den Inhalt anzuzeigen, den Ihr Programm aus der Originaldatei kopiert hat.

So kopieren Sie Dateien mit Files.copy

Wenn Sie Java 7 oder höher verwenden, können Sie die Files.copy-Methode verwenden. Dieses Verfahren ist im Allgemeinen eine einfachere Implementierung. Laut dem Java-Dokumentation, gibt es mehrere Überladungen für die Funktion.

Beispielsweise kann die Files.copy-Methode auch einen Eingabestream verwenden, um Dateien von einem Speicherort an einen anderen zu kopieren, jedoch durch eine Methode, die weniger Code verwendet. Sie können auch Pfade verwenden oder selbst angeben, wie die Methode Ihre Datei kopieren soll.

  1. Erstellen Sie eine neue Datei mit dem Namen "Copy-File-2.txt" im selben Ordner wie Ihre SimpleScript.java-Datei. Fügen Sie beliebige schriftliche Inhalte in die Datei ein.
  2. Fügen Sie oben in der Datei Importe für die Datei „java.nio.file. Pfade“ und „java.nio.file. Dateien"-Klassen.
    importieren java.nio.file. Pfade;
    importieren java.nio.file. Dateien;
  3. Fügen Sie zwei Zeichenfolgen hinzu, die den relativen Dateipfad für die Quelldatei und das Ziel darstellen. Verwenden Sie die Files.copy-Methode, die bereits die Logik zum Kopieren der Datei an das Ziel verarbeitet.
    String copySource = "Copy-File-2.txt";
    String copyDestination = "Ziel/Kopie-Datei-2.txt";

    Versuchen {
    Files.copy (Paths.get (copySource), Paths.get (copyDestination));
    } Fang (Ausnahme e) {
    System.out.println("Die Datei konnte nicht an das Ziel kopiert werden: " + copyDestination + ". Prüfen wenn der Ordner oder die Datei existiert bereits.");
    }
    System.out.println("2nd Datei kopiert");

  4. Führen Sie das Skript mit den Befehlen Javac und Java aus.
  5. Navigieren Sie zu Ihrem "Ziel"-Ordner, um Ihre kopierte Datei anzuzeigen.

So kopieren Sie Dateien mit FileChannel.transferTo()

Laut dem Java-Dokumentation, kann diese Methode eine potenziell schnellere Methode zum Kopieren von Dateien sein. Dies hängt jedoch davon ab, wie Sie die Funktion implementieren.

  1. Erstellen Sie eine neue Datei mit dem Namen "Copy-File-3.txt" im selben Ordner wie Ihre SimpleScript.java-Datei. Fügen Sie dieser Datei einige Beispielinhalte hinzu.
  2. Importieren Sie oben in SimpleScript.java die Datei „java.nio.channels. FileChannel"-Klasse neben drei der früheren allgemeinen dateibezogenen Klassen aus dem io-Paket.
    importieren java.io. Datei;
    importieren java.io. FileInputStream;
    importieren java.io. FileOutputStream;
    importieren java.nio.channels. Dateikanal;
  3. Erstellen Sie Dateiobjekte für die Quelle und das Ziel und verwenden Sie diese, um einen Eingabestream und einen Ausgabestream zu erstellen.
    Datei src= Neu File("Copy-File-3.txt");
    Datei dst = Neu File("Destination/Copy-File-3.txt");
    FileInputStream inStream = Neu FileInputStream (src);
    FileOutputStream outStream = Neu FileOutputStream (dst);
  4. Verwenden Sie die TransferTo-Methode aus der FileChannel-Klasse, um die Datei an ihr Ziel zu kopieren.
    Versuchen {
    FileChannel inChannel = inStream.getChannel();
    FileChannel outChannel = outStream.getChannel();
    inChannel.transferTo(0, inChannel.size(), outChannel);
    } Fang (Ausnahme e) {
    System.out.println("Die Datei konnte nicht an das Ziel kopiert werden: " + dst.getPath() + ". Prüfen wenn der Ordner oder die Datei existiert bereits.");
    } endlich {
    // Schließen Sie die Streams
    inStream.close();
    outStream.close();
    }
    System.out.println("3rd-Datei kopiert");
  5. Führen Sie das Skript mit den Befehlen Javac und Java aus.
  6. Navigieren Sie zu Ihrem "Ziel"-Ordner, um Ihre kopierte Datei anzuzeigen.

Das Kopieren von Dateien in Java ist nur der Anfang

Es gibt viele Möglichkeiten, wie Sie eine Datei in Java kopieren können. Drei mögliche Methoden umfassen die Verwendung der herkömmlichen Stream-Methode, der Files.copy-Methode oder der transferTo-Methode.

Es gibt viele andere Dateimanager-Operationen, die Sie mit Java ausführen können. Einige davon umfassen das Verschieben von Dateien, das Löschen von Dateien oder das Komprimieren von Dateien. Diese können nützlich sein, wenn Sie bestimmte Prozesse im Dateimanager automatisieren müssen.