17

我对套接字还是比较陌生,我还没有看到任何关于这个主题的信息。

要写入连接的套接字,您可以使用

socket.getOutputStream().write

DataOutputStream或者从套接字创建一个新的OutputStream并写入。

  • 使用 DataOutputStream 或 OutputStream 什么被认为是“良好做法”?我在互联网上找到的大多数示例都使用 DataOutputStream(发送字符串,例如双向聊天)。
  • 使用 DataOutputStream 而不是 OutputStream 有什么优点或缺点吗?
  • 例如,在发送文件时,这两者之间是否存在明显的性能差异?
4

3 回答 3

11

DataOutputStream确保数据以独立于平台的方式格式化。这是最大的好处。它确保另一方的一方能够阅读它。两者之间没有显着的性能差异。

OutputStream只有在传输原始二进制数据时才应使用。

于 2011-08-08T15:05:50.033 回答
2

DataOutputStream如果您需要额外的 API,请使用。如果你不这样做,那就没有意义了。BufferedOutputStream但是,如果您正在执行少量写入,并且flush()在适当的时候(例如,在您读取套接字之前),您应该始终将套接字的输出流包装在 a中。

于 2011-08-09T00:13:04.533 回答
-1

刚才我在使用 SOAP 服务时了解了 dataoutputstream 和 outputstreamwriter 之间的区别......我尝试通过请求 XML 传递阿拉伯数据,但在响应 XML 中我得到一些垃圾字符代替阿拉伯数据然后我尝试对请求进行编码(UTF-8),但没有这样的方法可以在 DataOutputStream 中进行编码,因为您可以在发送请求之前在 OutputStreamWriter 中对请求进行编码。OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream(), "UTF-8"); out.write(inputXML);

于 2017-12-20T13:19:21.863 回答