Pemindahan Fail melalui Soket dalam Java
Pemindahan fail merentasi soket memerlukan menukar fail kepada tatasusunan bait, menghantarnya dan menyusunnya semula pada penerima tamat. Panduan ini menangani kerumitan yang dihadapi dalam proses ini.
Logik Penerimaan Bahagian Pelayan
Pelayan mewujudkan pendengar soket, menerima sambungan masuk dan memulakan aliran data untuk komunikasi . Langkah kritikal ialah membaca bait yang diterima dan menyimpannya ke fail setempat:
<code class="java">byte[] bytes = new byte[1024]; in.read(bytes); FileOutputStream fos = new FileOutputStream("C:\test2.xml"); fos.write(bytes);</code>
Kaedah in.read(bait) mendapatkan semula data masuk, manakala fos.write(bait) menulisnya kepada tempatan fail.
Logik Penghantaran Sisi Pelanggan
Di sisi klien, fail dibaca ke dalam tatasusunan bait, dan data kemudiannya dihantar melalui soket:
<code class="java">File file = new File("C:\test.xml"); long length = file.length(); byte[] bytes = new byte[(int) length]; // ... out.write(bytes);</code>
Kaedah out.write(bait) menghantar bait fail yang ditukar ke pelayan.
Peningkatan Penyalinan Strim
Walau bagaimanapun, menggunakan baca dan kaedah menulis secara langsung boleh menjadi tidak cekap. Sebaliknya, InputStream dan OutputStream menyediakan kaedah transferTo untuk pemindahan data yang lebih pantas:
<code class="java">int count; byte[] buffer = new byte[8192]; while ((count = in.read(buffer)) > 0) { out.write(buffer, 0, count); }</code>
Teknik ini mengautomasikan proses penyalinan bait dan meningkatkan prestasi dengan ketara.
Atas ialah kandungan terperinci Bagaimana untuk Memindahkan Fail dengan Cekap melalui Soket di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!