MENU

Salin file Java (ubah ukuran buffer)

Daftar isi

Salin file Java (ubah ukuran buffer)

Di Jawa java.io.InputStream,,java.io.OutputStream pada
Memperkenalkan contoh program yang melakukan pemrosesan salinan menggunakan aliran input/output.
Dalam pemrosesan penyalinan menggunakan aliran, bahkan file besar pun dapat disalin dengan relatif cepat dengan meningkatkan ukuran buffer baca.
Dalam program contoh, ukuran buffer pembacaan data dapat ditentukan dengan argumen.

Area buffer baca yang ditentukan diamankan dalam tumpukan JavaVM, sehingga membuatnya terlalu besar akan mengakibatkan efisiensi yang buruk. Oleh karena itu, kami juga memeriksa ukuran buffer pembacaan data yang efisien saat menyalin file.

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 , membaca data dalam satuan ukuran buffer 1000KB. C:\a.txt Salin ke.

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 { copyStream("C:\\100M.txt", "C:\\a.txt",1000); } tangkapan (IOException e) { e.printStackTrace(); } }

◆Hasil eksekusi


Mengubah ukuran buffer

Untuk memeriksa ukuran buffer pembacaan data yang efisien saat menyalin file, setel argumen ketiga copyStream ke
Hasil pemrosesan salinan serupa dalam unit 1KB, 100KB, 1000KB, dan 10000KB dirangkum di bawah ini.



Meskipun tidak dapat disimpulkan dari hasil di atas saja, namun jika Anda menentukan ukuran buffer baca data dalam satuan 1000KB,
Hasilnya menunjukkan efisien dari segi penggunaan heap dan waktu proses pada saat proses copy.
Hasil serupa diperoleh bahkan ketika ukuran file diperbesar (kira-kira 1GB).

Di sisi lain, ketika menyalin file kecil (sekitar 1MB atau kurang), menambah ukuran buffer akan sia-sia, jadi menurut saya lebih baik menentukan sekitar 100KB.

Gunakan FileChannel untuk kecepatan lebih cepat


 java.io.InputStream,,java.io.OutputStream
Pemrosesan penyalinan penting dalam memahami aliran input/output, namun
I/O 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 menyalin file dengan mudah dan cepat menggunakan FileChannel.
Salin file Java (mudah dan cepat)

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