{"id":939,"date":"2018-09-17T18:39:34","date_gmt":"2018-09-17T09:39:34","guid":{"rendered":"https:\/\/chat-messenger.com\/?p=939"},"modified":"2018-12-23T01:53:23","modified_gmt":"2018-12-22T16:53:23","slug":"filechannel-transferto","status":"publish","type":"post","link":"https:\/\/chat-messenger.com\/id\/blog\/java\/transfer-saluran-file-ke","title":{"rendered":"Salin file Java (mudah dan cepat)"},"content":{"rendered":"<h2 class=\"common_title\"><a name=\"0\">Salin file Java (mudah dan cepat)<\/a>FileChannel#transferKe<\/h2>\n<p>\nDi Jawa<strong>menyalin berkas<\/strong>Memperkenalkan contoh program untuk melakukan ini.<br \/>\nContoh program didasarkan pada I\/O Baru yang diperkenalkan di J2SE1.4. <strong>java.nio.channels.FileChannel#transferTo<\/strong> metode.<br \/>\nAnda dapat menulis program pemrosesan salinan tanpa mengkhawatirkan buffer yang diperlukan untuk membaca data, menjadikannya metode pengkodean paling sederhana.\n<\/p>\n<h2 class=\"common_title\"><a name=\"1\">Apa itu saluran?<\/a><\/h2>\n<p>\nKata saluran digunakan dalam berbagai cara.<br \/>\nPada dasarnya, ini tampaknya menunjukkan jalur transmisi untuk memasukkan dan mengeluarkan data antar perangkat lain.<strong>java.nio.channels.FileChannel<\/strong> adalah kelas yang mewakili koneksi untuk membaca dan menulis ke file.<br \/>\n<br \/><strong>transferKe<\/strong> Suatu metode dapat mentransfer byte dari file sumber ke saluran tujuan.<\/p>\n<p>Berikut ini dikutip dari dokumen JavaAPI.\n<\/p>\n<blockquote><p>\n<strong>transferTo(posisi panjang, hitungan panjang, target WritableByteChannel)<\/strong><br \/>\nMentransfer byte dari file saluran ini ke saluran byte tertentu yang dapat ditulis.<br \/>\nMetode 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.\n<\/p><\/blockquote>\n<p>\nHasil verifikasi ini menunjukkan cara menggunakan streaming normal,<br \/>\nProses copy lebih cepat dibandingkan metode FileChannel lainnya (seperti menggunakan metode ByteBuffer#allocationDirect).<\/p>\n<p><script type=\"text\/javascript\" src=\"https:\/\/chat-messenger.com\/js\/common.js?dd12sssas2223\" charset=\"UTF-8\"><\/script><br \/>\n<script type=\"text\/javascript\"> writePR(); <\/script><\/p>\n<h2 class=\"common_title\"><a name=\"2\">contoh program<\/a><\/h2>\n<p><textarea readonly=\"readonly\" style=\"font-size: 13px;height: 400px;\" class=\"src\" onclick=\"this.focus();this.select()\">\/**<br \/>\n * \u30b3\u30d4\u30fc\u5143\u306e\u30d1\u30b9[srcPath]\u304b\u3089\u3001\u30b3\u30d4\u30fc\u5148\u306e\u30d1\u30b9[destPath]\u3078<br \/>\n * \u30d5\u30a1\u30a4\u30eb\u306e\u30b3\u30d4\u30fc\u3092\u884c\u3044\u307e\u3059\u3002<br \/>\n * \u30b3\u30d4\u30fc\u51e6\u7406\u306b\u306fFileChannel#transferTo\u30e1\u30bd\u30c3\u30c9\u3092\u5229\u7528\u3057\u307e\u3059\u3002<br \/>\n * \u5c1a\u3001\u30b3\u30d4\u30fc\u51e6\u7406\u7d42\u4e86\u5f8c\u3001\u5165\u529b\u30fb\u51fa\u529b\u306e\u30c1\u30e3\u30cd\u30eb\u3092\u30af\u30ed\u30fc\u30ba\u3057\u307e\u3059\u3002<br \/>\n * @param srcPath    \u30b3\u30d4\u30fc\u5143\u306e\u30d1\u30b9<br \/>\n * @param destPath    \u30b3\u30d4\u30fc\u5148\u306e\u30d1\u30b9<br \/>\n * @throws IOException    \u4f55\u3089\u304b\u306e\u5165\u51fa\u529b\u51e6\u7406\u4f8b\u5916\u304c\u767a\u751f\u3057\u305f\u5834\u5408<br \/>\n *\/<br \/>\npublic static void copyTransfer(String srcPath, String destPath)<br \/>\n    throws IOException {<\/p>\n<p>    FileChannel srcChannel = baru<br \/>\n        FileInputStream(srcPath).getChannel();<br \/>\n    FileChannel destChannel = baru<br \/>\n        FileOutputStream(destPath).getChannel();<br \/>\n    mencoba {<br \/>\n        srcChannel.transferTo(0, srcChannel.size(), destChannel);<br \/>\n    } Akhirnya {<br \/>\n        srcChannel.close();<br \/>\n        saluran tujuan.close();<br \/>\n    }<\/p>\n<p>}<br \/>\n<\/textarea><\/p>\n<h2 class=\"common_title\"><a name=\"3\">eksekusi<\/a><\/h2>\n<p>\nUntuk menyalin file contoh program, kami telah menyiapkan file 100MB &quot;100M.txt&quot; langsung di bawah drive C.<br \/>\nDalam contoh program <i>C:\\100M.txt<\/i> dengan menyalin <i>C:\\a.txt<\/i> Buat berkas.<\/p>\n<p>Sampel dieksekusi di lingkungan berikut.<br \/>\nOS: WindowsXP<br \/>\nProsesor: Athlon 1,46GHz<br \/>\nMemori: 1GB<br \/>\nJRE: 1.6.4\n<\/p>\n<p>\u25c6Contoh eksekusi<\/p>\n<pre class=\"sample_src\">\/** * Contoh eksekusi * @param args *\/ public static void main(String[] args) { coba { copyTransfer(&quot;C:\\\\100M.txt&quot;, &quot;C:\\\\a.txt&quot;); } catch (IOException e) { e.printStackTrace(); } }\r\n<\/pre>\n<p>\u25c6Hasil eksekusi<br \/>\n<a href=\"https:\/\/chat-messenger.com\/images\/file_copy.jpg\" target=\"_blank\"><br \/>\n<img src=\"https:\/\/chat-messenger.com\/images\/file_copy.jpg\" alt=\"\" border=\"0\"><\/a><br clear=\"all\"><\/p>\n<p>\n\u3000<strong>FileChannel#transferKe<\/strong> Dalam pengolahan copy menggunakan metode<br \/>\nMenyalin file 100MB selesai dalam waktu sekitar 3 detik. Selain itu, penggunaan heap selama proses penyalinan sekitar 300 (KB).<\/p>\n<p>Omong-omong,<a href=\"https:\/\/chat-messenger.com\/id\/blog\/java\/salinan-berkas\/\">Salin file Java (ubah ukuran buffer)<\/a>Dalam metode yang diperkenalkan di<br \/>\nSaat kami menentukan ukuran buffer paling efisien yaitu 1000KB, waktu pemrosesan sekitar 4 detik dan penggunaan heap sekitar 1.300KB.\n<\/p>\n<p>\nBahkan penyalinan file melalui aliran dapat dipercepat dengan menyetel ukuran buffer<br \/>\nDapat dikatakan tidak banyak perbedaan dalam proses penyalinan satu file.<br \/>\nNamun, saat menyalin file besar secara terus-menerus atau menjalankan beberapa proses penyalinan secara paralel, FileChannel bisa efektif dalam hal kecepatan pemrosesan dan penggunaan heap.<\/p>","protected":false},"excerpt":{"rendered":"<p>Salin file Java (mudah\/cepat) FileChannel#transferUntuk Menyalin file dengan Java \u2026<\/p>","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"swell_btn_cv_data":""},"categories":[19],"tags":[],"_links":{"self":[{"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/posts\/939"}],"collection":[{"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/comments?post=939"}],"version-history":[{"count":8,"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/posts\/939\/revisions"}],"predecessor-version":[{"id":1883,"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/posts\/939\/revisions\/1883"}],"wp:attachment":[{"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/media?parent=939"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/categories?post=939"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/tags?post=939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}