MENU

Salin file Java (ubah ukuran buffer)

Daftar isi

Salin file Java (ubah ukuran buffer)

Di Java java.io.InputStreamjava.io.OutputStream pada
Bagian ini memperkenalkan contoh program yang melakukan operasi penyalinan menggunakan aliran input/output.
Dalam penyalinan berbasis aliran data, peningkatan ukuran buffer baca memungkinkan penyalinan yang relatif cepat bahkan untuk file berukuran besar.
Program contoh ini memungkinkan Anda untuk menentukan ukuran buffer pembacaan data sebagai argumen.

Area buffer baca yang ditentukan dialokasikan di dalam heap Java VM, jadi membuatnya terlalu besar akan mengurangi efisiensi. Oleh karena itu, saat menyalin file, kami juga memeriksa ukuran buffer baca data yang optimal untuk efisiensi.

Contoh program


eksekusi

Untuk menyalin file program contoh, saya menyiapkan file berukuran 100MB bernama "100M.txt" langsung di drive C. Dalam program contoh tersebut, C:\100M.txt Data dibaca dalam ukuran buffer 1000KB. C:\a.txt Salin ke [lokasi].

Sampel tersebut dijalankan dalam lingkungan berikut.
Sistem Operasi: Windows XP
CPU: Athlon 1.46GHz
Memori: 1GB
JRE: 1.6.4

◆Contoh

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

◆Hasil Eksekusi


Mengubah ukuran buffer

Untuk menentukan ukuran buffer baca data yang efisien saat menyalin file, argumen ketiga dari copyStream harus diatur ke
Hasil dari proses penyalinan yang sama dalam satuan 1KB, 100KB, 1000KB, dan 10000KB dirangkum di bawah ini.



Meskipun kita tidak dapat menarik kesimpulan pasti hanya berdasarkan hasil di atas, jika ukuran buffer baca data ditentukan dalam satuan 1000KB,
Hasil penelitian menunjukkan bahwa sistem tersebut efisien dalam hal penggunaan memori heap dan waktu pemrosesan selama operasi penyalinan.
Selain itu, hasil serupa diperoleh bahkan ketika ukuran file ditingkatkan (menjadi sekitar 1GB).

Sebaliknya, saat menyalin file kecil (sekitar 1MB atau kurang), meningkatkan ukuran buffer tidak ada gunanya, jadi sebaiknya tentukan sekitar 100KB.

Gunakan FileChannel untuk kecepatan yang lebih cepat.


 java.io.InputStreamjava.io.OutputStream
Menyalin itu penting untuk memahami aliran input/output, tetapi
Input/Output baru diperkenalkan di J2SE1.4 java.nio.channels.FileChannel#transferTo
Dengan menggunakan metode ini, Anda dapat menyalin file dengan lebih efisien.
Selanjutnya, saya akan menunjukkan cara mudah dan cepat menyalin file menggunakan FileChannel.
Menyalin file Java (mudah dan cepat)

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