JavaRush /Java-Blog /Random-DE /Kaffeepause Nr. 99. So kopieren Sie Dateien in Java von e...

Kaffeepause Nr. 99. So kopieren Sie Dateien in Java von einem Verzeichnis in ein anderes. Strings in Java

Veröffentlicht in der Gruppe Random-DE

So kopieren Sie Dateien in Java von einem Verzeichnis in ein anderes

Quelle: DZone Ich programmiere schon lange in Java und Sie werden es nicht glauben, aber vor Java 7 gab es in der Java-API keine Methode zum Kopieren von Dateien. Unsere einzige Möglichkeit bestand darin, es selbst zu schreiben und dabei FileInputStream, FileOutputStream und einen Puffer zu verwenden, um Bytes von einem zum anderen zu kopieren; Oder noch besser: Verwenden Sie die Methode FileChannel.transferTo() oder Apache Commons FileUtils, die damals ein Lebensretter waren und auch heute noch existieren. Kaffeepause Nr. 99.  So kopieren Sie Dateien in Java von einem Verzeichnis in ein anderes.  Strings in Java - 1Das JDK hat sich mittlerweile weiterentwickelt und es gibt bereits eine anständige API zum Kopieren von Dateien von einem Verzeichnis in ein anderes. In diesem Artikel zeige ich Ihnen, wie wir vor Java 7 Dateien von einem Verzeichnis in ein anderes kopiert haben, sowie eine moderne Methode, die diese Aufgabe erheblich erleichtert.

1. Kopieren von Dateien von einem Verzeichnis in ein anderes vor Java 7

Abhängigkeit: Apache Commons IO

1.1 FileUtils.copyFile(Dateiquelle, Dateiziel) Diese Methode kopiert die Datei an einen neuen Speicherort und behält dabei den Zeitstempel der Datei bei. Außerdem wird der Inhalt der angegebenen Quelldatei in die angegebene Zieldatei kopiert. Das Verzeichnis mit der Zieldatei wird erstellt, falls es nicht existiert . Wenn die Zieldatei vorhanden ist, wird sie von dieser Methode überschrieben.
import java.io.File;

import java.io.IOException;



import org.apache.commons.io.FileUtils;



/**

* Java program to copy a file from one directory to another e.g. from src to dest

*

* @author Javin

*/

public class FileCopyDemo {



public static void main(String args[]) {



// Using Apache Commons FileUtils class

File srcFile = new File("bin/HelloWorld.class");

File destFile = new File("target/HelloWorld.class");

try {

FileUtils.copyFile(srcFile, destFile);

System.out.println("File successfully copied in Java");

} catch (IOException e) {

e.printStackTrace();

}



}



}

Output:

System.out.println("File successfully copied in Java");
1.2 Kopieren einer Datei in ein Verzeichnis unter Beibehaltung eines Zeitstempels Diese Methode kopiert den Inhalt der angegebenen Quelldatei in eine Datei mit demselben Namen im angegebenen Zielverzeichnis. Das Zielverzeichnis wird erstellt, wenn es nicht existiert . Wenn die Zieldatei vorhanden ist, wird sie von dieser Methode überschrieben.
import java.io.File;

import java.io.IOException;



import org.apache.commons.io.FileUtils;



/**

* Java program to copy a file from one directory to another like from src to dest

*

* @author Javin Paul

*/

public class Testing {



public static void main(String args[]) {



// Using Apache Commons FileUtils class

File srcFile = new File("bin/HelloWorld.class");

File destDir = new File("target");

try {

FileUtils.copyFileToDirectory(srcFile, destDir);



System.out.println("File successfully copied to destination directory in Java");

} catch (IOException e) {

e.printStackTrace();

}



}



}



Output

File successfully copied to destination directory in Java

2. Kopieren Sie Dateien mithilfe der Java 7 NIO 2-API von einem Verzeichnis in ein anderes.

Java 7 verfügt über eine Standardmethode zum Kopieren von Dateien: Files.copy . Es lässt sich in native E/A-Betriebssysteme integrieren, um eine hohe Leistung bereitzustellen.
import java.io.IOException;

import java.nio.file.Files;

import java.nio.file.Path;



import static java.nio.file.StandardCopyOption.*;

import static java.nio.file.LinkOption.*;



/**

* Java program to copy file using Java 7 Files.copy() method

*

* @author Javin Paul

*/

public class FileCopyDemo {



public static void main(String args[]) {



try {

Path bytes = Files.copy(

new Java.io.File("bin/HelloWorld.class").toPath(),

new java.io.File("target/HelloWorld.class").toPath(),

REPLACE_EXISTING,

COPY_ATTRIBUTES,

NOFOLLOW_LINKS);

System.out.println("File successfully copied using Java 7 way");



} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}



}



}
Sie können Dateien auch in Java kopieren, indem Sie Code mit FileInputStream und FileOuputStream schreiben . Dies ist jedoch nicht erforderlich, wenn Sie Java 7 installiert haben. Die Apache Commons IO FileUtils-Klasse ist ebenfalls eine praktische Alternative. Für das Kopieren und Übertragen von Dateien mit hoher Geschwindigkeit können Sie auch die Klassen java.nio und FileChannel nutzen . Beachten Sie jedoch, dass es in Windows einen Fehler gibt, der Sie daran hindert, mehr als 64 GB Kanaldaten zu übertragen.

Strings in Java

Quelle: Dev.to Wie in anderen Programmiersprachen ist ein String in Java eine Folge von Zeichen. Aber Java implementiert einen String nicht als Array von Zeichen, sondern behandelt ihn als vollständiges String- Objekt . Kaffeepause Nr. 99.  So kopieren Sie Dateien in Java von einem Verzeichnis in ein anderes.  Strings in Java - 2

So erstellen Sie ein String-Objekt mit dem neuen Schlüsselwort und den Literalen

Es gibt zwei Möglichkeiten, ein String-Objekt zu erstellen: mit dem Schlüsselwort new oder mit Literalen. Unter wörtlicher Darstellung versteht man die Darstellung seines Werts als Ganzzahl oder Zeichenfolge. Der folgende Code zeigt, wie wir mit dem neuen Schlüsselwort eine Zeichenfolge erstellen können.
String a = new String();
Wie wir wissen, wird das Schlüsselwort new verwendet, um eine Instanz dieser Klasse zu erstellen. Oben haben wir eine Instanz einer Zeichenfolge vom Typ „a“ ohne Zeichen erstellt. Um eine Zeichenfolge mit einem Wert darin zu erstellen, können Sie folgendermaßen vorgehen.
char name[] = {'x','y','z'}
String a = new String(chars);
Oben haben wir ein Zeichenarray name[ ] mit den Werten „x“, „y“, „z“ erstellt und dieses komplette Array dann der Zeichenfolge „a“ zugewiesen. Wir haben den Konstruktor der String- Klasse verwendet , um den Wert des Strings zu initialisieren. Wie wir oben gesehen haben, ist das Erstellen einer Zeichenfolge mit dem neuen Schlüsselwort etwas verwirrend und zeitaufwändig. Aber es gibt einen wirklich einfachen Weg, und hier kommen uns Literale zu Hilfe.
String s = "xyz";
So erstellen wir in Java mithilfe von Literalen einen String. Für jedes String-Literal in einem Programm erstellt Java automatisch ein String-Objekt mit einem bereitgestellten Anfangswert. Sie können ein String-Literal an einer beliebigen Stelle in einem Programm verwenden, um daraus ein String-Objekt zu erstellen.

Beispielzeichenfolge

Hier ist der Code für ein einfaches Hello World-Programm mit ein paar Zeilen.
public class HelloWorld {
    public static void main(String args[]) {

        String s1 = new String("Hello World using new keyword"); // Using new keyword
        String s2 = "Hello World using literals";

        System.out.println(s1);
        System.out.println(s2);
}
}
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION