Java 中透過套接字的檔案傳輸
跨套接字的檔案傳輸需要將檔案轉換為位元組數組,它們,並在接收端重新建構它們結尾。本指南解決了此過程中遇到的複雜性。
伺服器端接收邏輯
伺服器建立套接字偵聽器,接受傳入連線並初始化資料流以進行通訊。關鍵步驟是讀取接收到的位元組並將其儲存到本機檔案:
<code class="java">byte[] bytes = new byte[1024]; in.read(bytes); FileOutputStream fos = new FileOutputStream("C:\test2.xml"); fos.write(bytes);</code>
in.read(bytes) 方法會擷取傳入的數據,而fos.write(bytes) 將其寫入本地文件。
客戶端發送邏輯
在客戶端,檔案被讀入位元組數組,然後透過套接字發送資料:
<code class="java">File file = new File("C:\test.xml"); long length = file.length(); byte[] bytes = new byte[(int) length]; // ... out.write(bytes);</code>
out.write(bytes) 方法將轉換後的檔案位元組傳送到伺服器。
流複製改進
但是,使用 read直接寫入方法可能效率低。相反,InputStream 和OutputStream 提供了transferTo 方法以實現更快的資料傳輸:
<code class="java">int count; byte[] buffer = new byte[8192]; while ((count = in.read(buffer)) > 0) { out.write(buffer, 0, count); }</code>
此技術可自動執行位元組複製過程並顯著提高效能。
以上是Java中如何透過Socket高效傳輸檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!