一个问题
在例如的情况下
DataOutputStream output= new DataOutputStream(clientSocket.getOutputStream()) ;
或者
DataInputStream in = new DataInputStream(clientSocket.getInputStream());
每次我需要 I/O 操作时是否必须创建这些对象,或者每次我需要时只调用它们的读取或写入?(每次手术后加上一些冲洗)
一个问题
在例如的情况下
DataOutputStream output= new DataOutputStream(clientSocket.getOutputStream()) ;
或者
DataInputStream in = new DataInputStream(clientSocket.getInputStream());
每次我需要 I/O 操作时是否必须创建这些对象,或者每次我需要时只调用它们的读取或写入?(每次手术后加上一些冲洗)
您必须只创建一次这些对象,即在您的套接字初始化之后。
这两种变体都是可能的,但只创建一次会更有用。
如果您想要一些缓冲(以避免为每个写入命令发送新的 TCP 数据包),您可能需要考虑在 Socket 和 DataIn/Output 之间放置一个 BufferedInputStream:
DataOutput output = new DataOutputStream(new BufferedOutputStream(clientSocket.getOutputStream()));
DataInput input = new DataInputStream (new BufferedInputStream (clientSocket.getInputStream()));
我在这里使用接口 DataInput/DataOutput 而不是 Stream 类,因为通常您只需要那里定义的方法。