java DataOutputStream getOutputStream()getInputStream()

时间:2011-02-06 13:24:40

标签: java datainputstream

一个问题

例如

的情况下的

DataOutputStream output= new DataOutputStream(clientSocket.getOutputStream()) ;

DataInputStream in = new   DataInputStream(clientSocket.getInputStream());

每次我需要I / O操作时都要创建这些对象,或者每次我需要时只调用它们的读取或写入??? (每次操作后再加上一些冲洗)

2 个答案:

答案 0 :(得分:3)

您必须只创建一次这些对象,也就是说,在套接字初始化之后。

答案 1 :(得分:2)

这两种变体都是可能的,但仅创建它们一次更有用。

如果你想要一些缓冲(为了避免为每个写命令发送一个新的TCP数据包),你可能想考虑在Socket和DataIn / Output之间放一个BufferedInputStream:

DataOutput output = new DataOutputStream(new BufferedOutputStream(clientSocket.getOutputStream()));
DataInput input   = new DataInputStream (new BufferedInputStream (clientSocket.getInputStream()));

我在这里使用接口DataInput / DataOutput而不是Stream类,因为通常你只需要在那里定义的方法。