Obwohl Java eine IO -Betriebsklasse bereitstellt, die Dateien verarbeiten kann. Es gibt jedoch keine Möglichkeit, Dateien zu kopieren. Das Kopieren von Dateien ist ein wichtiger Vorgang, wenn Ihr Programm mit vielen verwandten Dateien zu tun hat. Es gibt jedoch verschiedene Möglichkeiten, Java -Dateien zu kopieren, und die folgenden sind die beliebtesten Methoden.
1. Kopieren Sie mit FileStreams
Dies ist die klassischste Möglichkeit, den Inhalt einer Datei in eine andere zu kopieren. Verwenden Sie FileInputStream, um Bytes von Datei A zu lesen, und verwenden Sie FileOutputStream, um an Datei B. zu schreiben. Dies ist der Code für die erste Methode:
private statische void CopyFileS -filESTREAMS (Dateiquelle, Dateidest) löst IOException {InputStream input = null aus; OutputStream output = null; try {input = new FileInputStream (Quelle); output = new FileOutputStream (dest); byte [] buf = neues byte [1024]; int bytesread; while ((byteSread = input.read (buf))> 0) {output.write (buf, 0, byteSread); }} endlich {input.close (); output.close (); }} Wie Sie sehen, führen wir mehrere Lesen- und Schreibvorgänge aus, um die Daten auszuprobieren. Dies sollte also eine ineffiziente Art und Weise sein, und die nächste Methode werden wir einen neuen Weg sehen.
2. Kopieren Sie mit Filechannel
Java NIO enthält die Methode für Transferfrom, die schneller kopiert werden sollte als auf dem Dokument. Hier ist der Code für die zweite Methode:
private statische void CopyFileS -fileChannels (Dateiquelle, Dateidest) löst IOException {filechannel InputChannel = null aus; Filechannel outputChannel = null; try {inputChannel = new FileInputStream (Quelle) .GetChannel (); outputChannel = new FileOutputStream (dest) .getCannel (); outputChannel.transferfrom (InputChannel, 0, InputChannel.size ()); } endlich {inputChannel.close (); outputChannel.close (); }}3. kopieren Sie mit Commons IO
Apache Commons IO bietet eine Kopierdateimethode in seiner Datei -Daten -Klasse, mit der eine Datei in eine andere kopiert werden kann. Es ist sehr bequem, wenn Sie die Apache Commons FileUtils -Klasse verwenden, wenn Sie bereits Ihr Projekt verwenden. Grundsätzlich verwendet diese Klasse Java Nio Filechannel -Interna. Dies ist der Code für die dritte Methode:
private statische void copyFileUntapacheCommonsio (Dateiquelle, Datei dest) löst IOException {FileUtils.copyFile (Quelle, Dest) aus; }4. Kopieren Sie mit der Dateienklasse von Java7 von Java7
Wenn Sie Erfahrung in Java 7 haben, wissen Sie möglicherweise, dass Sie die Kopiermethode verwenden können, um von einer Datei in eine andere zu kopieren. Dies ist der Code für die vierte Methode:
private statische void CopyFileUptionjava7Files (Dateiquelle, Dateidest) löscht IoException {files.copy (source.topath (), dest.topath ()); }Schauen wir uns den Implementierungscode zum Kopieren einer Java -Datei in ein anderes Verzeichnis an. Der spezifische Code lautet wie folgt:
Paket com.util; import java.io.file; import java.io.fileinputstream; import java.io.fileoutputstream; importieren java.io.inputstream; public class testhtml {/** * Kopieren Sie eine einzelne Datei * @param alte String -String -Original -Datei wie: c: c: /fqf.txt * @param Newpath -Pfad: C: /fqf.txt * @param Newpath -Pfad nach: c: /fqf.txt * @param Newpath -Pfad nach: c: /fqf.txt * @param Newpath. @Return boolean */ public void Copyfile (String OldPath, String NewPath) {try {int bytesum = 0; int byteread = 0; Datei oldFile = neue Datei (OldPath); if (oldFile.exists ()) {// InputStream Instream = new FileInputStream (OldPath); // Lesen Sie im Original -File -Dateiausgangsstream fs = new FileOutputStream (NewPath); byte [] buffer = neues byte [1444]; int Länge; while ((byteread = instream.read (puffer))! = -1) {bytesum += byteread; // Bytes Dateigröße System.out.println (bytesum); fs.write (Buffer, 0, Byteread); } instrenm.close (); }} catch (Ausnahme e) {System.out.println ("Fehler kopieren einer einzelnen Datei"); E.PrintStackTrace ();}}/** * Kopieren Sie den gesamten Ordnerinhalt * @param OldPath String Original -Dateipfad wie: c:/fqf * @param newPath String nach dem Kopieren ist: f:/fqf/ff * @return boolean */öffentlich void copoler (String altpath, string newpath) {try {(Newspath). // Wenn der Ordner nicht vorhanden ist, erstellen Sie eine neue Ordnerdatei a = neue Datei (OldPath). String [] file = a.list (); Datei temp = null; für (int i = 0; i <file.length; i ++) {if (oldPath.endswith (Datei.Separator)) {temp = new Datei (OldPath+Datei [i]); } else {temp = neue Datei (OldPath+Datei.Sesparator+Datei [i]); } if (temp.isfile ()) {fileInputStream input = new FileInputStream (temp); FileOutputStream output = new FileOutputStream (newpath + "/" + (temp.getName ()). ToString ()); Byte [] B = neues Byte [1024 * 5]; Int len; while ((len = input.read (b))! = -1) {output.write (b, 0, len); } output.flush (); output.close (); input.close (); } if (temp.isdirectory ()) {// Wenn es sich um einen Unterordner -Exemplar handelt (OldPath+"/"+Datei [i], NewPath+"/"+Datei [i]); }}} catch (exception e) {System.out.println ("Fehler beim Kopieren des gesamten Ordners inhaltlich"); e.printStackTrace();}}public static void main(String[] args)throws Exception {// // This is your source file, which itself exists // File beforefile = new File("C:/Users/Administrator/Desktop/Untitled-2.html");////// //This is the file you want to save, it is customized, it does not exist in itself // File AfterFile = new Datei ("c: /Users/administrator/desktop/jiekou0/untitled-2.html"); //// // Definieren Sie den Dateieingabestream, um die vorabile Datei zu lesen // FileInputStream fis = new FileInputStream (Vorfile). FileOutputStream (AfterFile); //// // Datei -Cache -Bereich // Byte [] B = New Byte [1024]; // // Lesen Sie die Dateistrominformationen im Bereich "Datei -Cache". Wenn das Leseergebnis nicht -1 ist, bedeutet dies, dass die Datei nicht gelesen wurde und sie gelesen wurde. oldPath = "c: /Users/administrator/desktop/untitled-2.html"; String newpath = "c: /Users/administrator/desktop/jiekou0/untitled-2.html"; testhtml t = new testhtmL ();Zusammenfassen
Die oben genannten sind die 4 Möglichkeiten, Dateien in Java zu kopieren, und den Beispielcode des Kopierens von Dateien in ein anderes Verzeichnis, das vom Editor eingeführt wurde. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!