透過套接字傳輸Java 檔案:解決損壞的檔案問題
您的Java 程式旨在透過套接字在客戶端和伺服器之間傳輸檔案。但是,伺服器目前正在產生一個空文件。為了修正這個問題,讓我們檢查伺服器和客戶端程式碼。
伺服器程式碼:
從伺服器程式碼開始,問題源自於讀取檔案位元組一旦使用 in.read(bytes)。如果檔案很大,此方法可能無法捕獲所有位元組。相反,我們應該循環讀取位元組:
<code class="java">int count; byte[] buffer = new byte[8192]; // or 4096, or more while ((count = in.read(buffer)) > 0) { fos.write(buffer, 0, count); }</code>
客戶端程式碼:
接下來,在客戶端程式碼中,您實際上並沒有寫入文件位元組到輸出流out。應使用 out.write(bytes) 行:
<code class="java">out.write(bytes);</code>
透過這些修改,程式應如預期般正確傳送和接收檔案。
以上是為什麼我透過套接字進行 Java 檔案傳輸會產生空檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!