Meskipun Java menyediakan kelas operasi IO yang dapat menangani file. Tetapi tidak ada cara untuk menyalin file. Menyalin file adalah operasi penting ketika program Anda harus menangani banyak file yang terkait. Namun, ada beberapa cara untuk menyalin file java, dan berikut ini adalah metode yang paling populer.
1. Salin menggunakan filestreams
Ini adalah cara paling klasik untuk menyalin konten satu file ke yang lain. Gunakan FileInputStream untuk membaca byte file A dan gunakan FileOutputStream untuk menulis ke File B. Ini adalah kode untuk metode pertama:
private static void copyFileUsingFileStreams (sumber file, file dest) melempar ioException {inputStream input = null; OutputStream output = null; coba {input = new fileInputStream (sumber); output = FileOutputStream baru (DEST); byte [] buf = byte baru [1024]; int bytesread; while ((bytesread = input.read (buf))> 0) {output.write (buf, 0, bytesread); }} akhirnya {input.close (); output.close (); }} Seperti yang Anda lihat, kami melakukan beberapa operasi baca dan tulis untuk mencoba data, jadi ini harus menjadi cara yang tidak efisien, dan metode berikutnya kita akan melihat cara baru.
2. Salin menggunakan filechannel
Java Nio menyertakan metode TransferFrom, yang harus disalin lebih cepat dari aliran file berdasarkan dokumen. Berikut ini kode untuk metode kedua:
private static void copyFileUsingFileChannels (sumber file, file dest) melempar ioException {filechannel inputChannel = null; FileChannel outputChannel = null; coba {inputchannel = new FileInputStream (Source) .getChannel (); outputChannel = new fileoutputStream (dest) .getChannel (); outputchannel.transferfrom (inputchannel, 0, inputchannel.size ()); } akhirnya {inputchannel.close (); outputchannel.close (); }}3. Salin menggunakan commons io
Apache Commons IO menyediakan metode file salin di kelas Fileutils -nya, yang dapat digunakan untuk menyalin satu file ke yang lain. Sangat nyaman saat menggunakan kelas Apache Commons Fileutils saat Anda sudah menggunakan proyek Anda. Pada dasarnya, kelas ini menggunakan java nio filechannel internal. Ini adalah kode untuk metode ketiga:
private static void copyFileUsingAPAChecommonsio (sumber file, file dest) melempar ioException {fileutils.copyfile (sumber, dest); }4. Salin Menggunakan Kelas File Java7
Jika Anda memiliki beberapa pengalaman di Java 7, Anda mungkin tahu bahwa Anda dapat menggunakan metode salin untuk menyalin dari satu file ke file lainnya. Ini adalah kode untuk metode keempat:
private static void copyFileUsingJava7Files (sumber file, file dest) melempar ioException {file.copy (source.topath (), dest.topath ()); }Mari kita lihat kode implementasi untuk menyalin file Java ke direktori lain. Kode spesifiknya adalah sebagai berikut:
Paket com.util; import java.io.file; import java.io.fileInputStream; import java.io.fileOutputStream; import java.io.inputStream; public class testHtml {/*** Salin satu file* @param Oldpath String File Asli Path seperti: /fqf.txf. f: /fqf.txt * @return boolean */ public void copyFile (string oldpath, string newPath) {coba {int bytesum = 0; int byteread = 0; File oldfile = file baru (oldpath); if (oldFile.exists ()) {// inputStream instream = new FileInputStream (oldPath); // Baca dalam file asli fileOutputStream fs = new fileoutputStream (newPath); byte [] buffer = byte baru [1444]; panjang int; while ((byteread = instream.read (buffer))! = -1) {bytesum += byteread; // bytes ukuran file system.out.println (bytesum); fs.write (buffer, 0, byteread); } instream.close (); }} catch (Exception e) {System.out.println ("Kesalahan menyalin satu file"); e.printStackTrace();}}/** * Copy the entire folder content* @param oldPath String Original file path such as: c:/fqf * @param newPath String Path after copying is: f:/fqf/ff * @return boolean */ public void copyFolder(String oldPath, String newPath) {try { (new File(newPath)).mkdirs(); // Jika folder tidak ada, buat file folder baru a = file baru (oldpath); String [] file = a.list (); File temp = null; untuk (int i = 0; i <file.length; i ++) {if (oldpath.endswith (file.separator)) {temp = file baru (oldpath+file [i]); } else {temp = file baru (oldpath+file.separator+file [i]); } if (temp.isfile ()) {fileInputStream input = new fileInputStream (temp); FileOutputStream output = new FileOutputStream (newPath + "/" + (temp.getName ()). ToString ()); byte [] b = byte baru [1024 * 5]; int len; while ((len = input.read (b))! = -1) {output.write (b, 0, len); } output.flush (); output.close (); input.close (); } if (temp.isdirectory ()) {// Jika itu adalah copyFolder subfolder (oldpath+"/"+file [i], newpath+"/"+file [i]); }}} catch (Exception e) {System.out.println ("Kesalahan menyalin seluruh operasi konten folder"); E.PrintStackTrace ();}} public static void main (string [] args) melempar Exception {// // Ini adalah file sumber Anda, yang sendiri ada // file befeFile = file baru ("c: /users/administrator/ini ada sendiri, Anda tidak ada, ini adalah sendiri, ini adalah sendiri, Anda tidak ingin sendiri, // File afterFile = File baru ("c: /users/administrator/desktop/jiekou0/untitled-2.html"); //// // Tentukan aliran input file untuk membaca file afileNput/file fis yang baru. fos = FileOutputStream baru (AfterFile); //// // File cache Area // byte [] b = byte baru [1024]; // // Baca informasi aliran file di area cache file. Jika hasil bacaan bukan -1, itu berarti file belum dibaca, dan telah dibaca.// while (fis.read (b)! = -1) {// // tulis konten di area cache ke file afterfile // fos.write (b); // fos.flush (); //} string/ oldpath = "c: /users/administrator/desktop/untitled-2.html"; string newpath = "c: /users/administrator/desktop/jiekou0/untitled-2.html"; testhtml t = new tesththtml (); t.copy "; testhtml t = new tesththtml (); t.copy";Meringkaskan
Di atas adalah 4 cara untuk menyalin file di Java dan contoh kode menyalin file ke direktori lain yang diperkenalkan oleh editor. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!