DataOutputStream write(int i)和writeByte(int i)之间的区别是什么

时间:2014-10-15 03:37:22

标签: java

如果我想通过套接字发送一个整数,我应该使用哪个?有什么区别?

Socket socket=new Socket(localhost, 9876);
DataOutputStream writer=new DataOutputStream(socket.getOutputStream());
int i =  10;
writer.write(i);

writer.writeByte(i);

使用writeByte时,是否需要在末尾添加“\ r \ n”?

2 个答案:

答案 0 :(得分:3)

功能相同,它们都将参数的八个低级别位写入底层流。

但是writeByte是最终的并且是不同步的,而write不是最终的并且是同步的

此外,DataOutputStream实现DataOutput接口,该接口包含writeByte()和write()方法,并覆盖在其超类FilterOutputStream中声明的write()。这就是DataOutputStream最终有两种不同方法做同样工作的原因......

另请参阅Java Doc

答案 1 :(得分:1)

没有区别。他们做同样的事情。 DataOutputStream需要实施write(int),因为它是OutputStream类型的一部分。

他们都没有写任何行终止符。