为什么DataOutputStream是Server Client程序中的首选

时间:2017-06-08 08:55:08

标签: java sockets bufferedreader bufferedinputstream dataoutputstream

为什么DataInputStream / DataOutputStream比其他任何Java流使用或首选,比如Buffered编程中的BufferedInputStream / BufferedOutputStream,BufferedReader / BufferedWriter,如Server Client程序?

请解释一下它们之间的区别??

提供DataOutputStream的详细功能(就像它所做的那样)。

明确解释为什么&我们什么时候需要DataInputStream / DataOutputStream ??

先谢谢。

2 个答案:

答案 0 :(得分:0)

DataInputStream / DataOutputStream实施DataInput / DataOutput接口,因此有writeShort()readInt()等方法。如果你必须以某些原语(short / int / utf8 string / ...)读取/写入数据而不仅仅是字节,这是非常方便的。

在发送方,您可以执行类似

的操作
OutputStream os = ... // let's say you already have it
DataOutputStream dos = new DataOutputSream();
dos.writeInt(42);

在接收方,它是

InputStream is = ... // let's say you already have it
DataInputStream dis = new DataInputStream(is);
int intValue = dis.readInt();

现在intValue是42.您不必考虑int到字节的转换,字节顺序等等,您只需编写然后使用方便的方法读取它。

答案 1 :(得分:0)

我得到了所有答案,感谢Roman Puchkovskiy。我还发现DataInputStream / DataOutputStream和BufferedReader / BufferedWriter都可以在Socket编程中使用,但是首选使用DataInputStream / DataOutputStream,原因

  

"如果你必须在某些数据中读/写数据,这是非常方便的   primitives(short / int / utf8 string / ...)而不仅仅是字节。 "正如Roman Puchkovskiy所说。

感谢你们所有人出面帮助我。