通过套接字传输 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中文网其他相关文章!