Java 套接字:DataOutputStream 还是 OutputStream?

2022-09-03 02:37:45

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

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

socket.getOutputStream().write

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

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

答案 1

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

仅当传输原始二进制数据时才应使用。OutputStream


答案 2

如果您需要额外的 API,请使用。如果你不这样做,就没有意义。但是,如果您正在执行小写操作,则应始终将套接字的输出流包装在适当的位置,例如在读取套接字之前。DataOutputStreamBufferedOutputStreamflush()


推荐