Java套接字:DataOutputStream还是OutputStream?
我对sockets还是比较陌生的,我还没有看到关于这个主题的任何信息 要写入连接的套接字,可以使用Java套接字:DataOutputStream还是OutputStream?,java,sockets,networking,dataoutputstream,Java,Sockets,Networking,Dataoutputstream,我对sockets还是比较陌生的,我还没有看到关于这个主题的任何信息 要写入连接的套接字,可以使用 socket.getOutputStream().write 或者从套接字OutputStream创建一个新的DataOutputStream,并写入该套接字 使用DataOutputStream或OutputStream的“良好实践”是什么? 我在互联网上发现的大多数人都使用DataOutputStream(发送字符串,如双向聊天) 使用DataOutputStream而不是OutputSt
socket.getOutputStream().write
或者从套接字
OutputStream
创建一个新的DataOutputStream
,并写入该套接字
- 使用DataOutputStream或OutputStream的“良好实践”是什么? 我在互联网上发现的大多数人都使用DataOutputStream(发送字符串,如双向聊天)李>
- 使用DataOutputStream而不是OutputStream有什么优点或缺点吗
- 例如,在发送文件时,这两者之间是否存在明显的性能差异
数据输出流
确保以独立于平台的方式格式化数据。这是最大的好处。它确保另一边的人能够阅读它。两者之间没有显著的性能差异
只有在传输原始二进制数据时,才应使用
OutputStream
。如果需要额外的API,请使用DataOutputStream
。如果你不这样做,那就没有意义了。但是,如果您正在进行小的写入,那么您应该始终将套接字的输出流包装在一个BufferedOutputStream
中,并且在适当的时候,也就是在您阅读套接字之前,例如。刚才在使用SOAP服务时,我了解了dataoutputstream和outputstreamwriter之间的区别。。。我试图通过请求XML传递阿拉伯语数据,但在响应XML中,我得到了一些垃圾字符来代替阿拉伯语数据,然后我尝试对请求进行编码(UTF-8),但没有在DataOutputStream中进行编码的方法,因为您可以在发送请求之前在OutputStreamWriter中对请求进行编码。
OutputStreamWriter out=新的OutputStreamWriter(con.getOutputStream(),“UTF-8”);
out.write(inputXML) 那么,如果您想创建一个能够发送文件的独立于平台的java应用程序,您有什么建议呢?即使文件只包含原始字节,您仍然可以使用DataOutputStream发送它们,因此,我在所有情况下都会选择DataOutputStream。
DataOutputStream
only“确保数据以独立于平台的方式格式化”,如果您使用它提供的额外API。它的write()
方法没有神奇的属性。如果您只使用这些功能,(a)根本没有性能差异,(b)使用DataOutputStream
没有任何意义。如果您使用的是额外的API,那么就没有什么可以与之相比的了。因此,关于性能差异的陈述基本上是毫无意义的。