17

私はまだソケットに比較的慣れていないため、この件に関する情報は見たことがありません。

接続されたソケットに書き込むには、次のいずれかを使用できます

socket.getOutputStream().write

DataOutputStreamまたは、ソケットから新しいものを作成し、OutputStreamそれに書き込みます。

  • DataOutputStream または OutputStream を使用して、「良い習慣」と見なされるものは何ですか? インターネットで見つけたほとんどのでは、DataOutputStream を使用しています (双方向チャットなどで文字列を送信するため)。
  • OutputStream よりも DataOutputStream を使用することの利点または欠点はありますか?
  • たとえば、ファイルを送信するときに、これら 2 つの間に顕著なパフォーマンスの違いはありますか?
4

3 に答える 3

11

DataOutputStreamデータがプラットフォームに依存しない方法でフォーマットされていることを確認します。これが大きなメリットです。相手側が確実に読めるようにします。両者に大きなパフォーマンスの違いはありません。

OutputStream生のバイナリ データを転送する場合にのみ使用してください。

于 2011-08-08T15:05:50.033 に答える
2

DataOutputStream追加の API が必要な場合に使用します。そうしないと意味がありません。BufferedOutputStreamただし、小さな書き込みを行う場合、およびflush()適切な場合、たとえばソケットを読み取る前に、常にソケットの出力ストリームをラップする必要があります。

于 2011-08-09T00:13:04.533 に答える