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) はそれをローカル ファイルに書き込みます。 file.
クライアント側の送信ロジック
クライアント側では、ファイルがバイト配列に読み取られ、データがソケット経由で送信されます。
<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 でソケット経由でファイルを効率的に転送するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。