MENU

Salin file Java (mudah dan cepat)

Daftar isi

Salin file Java (mudah dan cepat)FileChannel#transferKe

Di Jawamenyalin berkasMemperkenalkan contoh program untuk melakukan ini.
Contoh program didasarkan pada I/O Baru yang diperkenalkan di J2SE1.4. java.nio.channels.FileChannel#transferTo metode.
Anda dapat menulis program pemrosesan salinan tanpa mengkhawatirkan buffer yang diperlukan untuk membaca data, menjadikannya metode pengkodean paling sederhana.

Apa itu saluran?

Kata saluran digunakan dalam berbagai cara.
Pada dasarnya, ini tampaknya menunjukkan jalur transmisi untuk memasukkan dan mengeluarkan data antar perangkat lain.java.nio.channels.FileChannel adalah kelas yang mewakili koneksi untuk membaca dan menulis ke file.

transferKe Suatu metode dapat mentransfer byte dari file sumber ke saluran tujuan.

Berikut ini dikutip dari dokumen JavaAPI.

transferTo(posisi panjang, hitungan panjang, target WritableByteChannel)
Mentransfer byte dari file saluran ini ke saluran byte tertentu yang dapat ditulis.
Metode ini bisa jauh lebih efisien daripada perulangan sederhana yang membaca data dari saluran ini dan menulisnya ke saluran target. Banyak sistem operasi dapat mentransfer byte langsung dari cache sistem file ke saluran target. Saat ini, tidak ada byte yang disalin.

Hasil verifikasi ini menunjukkan cara menggunakan streaming normal,
Proses copy lebih cepat dibandingkan metode FileChannel lainnya (seperti menggunakan metode ByteBuffer#allocationDirect).


contoh program

eksekusi

Untuk menyalin file contoh program, kami telah menyiapkan file 100MB "100M.txt" langsung di bawah drive C.
Dalam contoh program C:\100M.txt dengan menyalin C:\a.txt Buat berkas.

Sampel dieksekusi di lingkungan berikut.
OS: WindowsXP
Prosesor: Athlon 1,46GHz
Memori: 1GB
JRE: 1.6.4

◆Contoh eksekusi

/** * Contoh eksekusi * @param args */ public static void main(String[] args) { coba { copyTransfer("C:\\100M.txt", "C:\\a.txt"); } catch (IOException e) { e.printStackTrace(); } }

◆Hasil eksekusi


 FileChannel#transferKe Dalam pengolahan copy menggunakan metode
Menyalin file 100MB selesai dalam waktu sekitar 3 detik. Selain itu, penggunaan heap selama proses penyalinan sekitar 300 (KB).

Omong-omong,Salin file Java (ubah ukuran buffer)Dalam metode yang diperkenalkan di
Saat kami menentukan ukuran buffer paling efisien yaitu 1000KB, waktu pemrosesan sekitar 4 detik dan penggunaan heap sekitar 1.300KB.

Bahkan penyalinan file melalui aliran dapat dipercepat dengan menyetel ukuran buffer
Dapat dikatakan tidak banyak perbedaan dalam proses penyalinan satu file.
Namun, saat menyalin file besar secara terus-menerus atau menjalankan beberapa proses penyalinan secara paralel, FileChannel bisa efektif dalam hal kecepatan pemrosesan dan penggunaan heap.

  • URLをコピーしました!
Daftar isi