关闭套接字也会关闭/刷新输入/输出流

  • 本文关键字:输出流 套接字 刷新 java
  • 更新时间 :
  • 英文 :


我有一个这样的程序,

Socket socket = serverSocket.accept();
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
...some read and write here...
socket.close;

代码工作正常。但是如果我关闭插座,我不确定输入/输出是否关闭。我也没有调用.flush((,数据将如何发送出去?

    关闭套接字
  1. 不会刷新输出流,但会关闭流和套接字。
  2. 关闭
  3. 输入流不会刷新输出流,但会关闭流和套接字。
  4. 关闭输出流
  5. 会刷新输出流并关闭流和套接字。

您应该关闭从套接字获得的输出流最外层的输出流。例如:

BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
DataOutputStream dos = new DataOutputStream(bos);

关闭"做"。这会刷新它,刷新"bos",并关闭所有内容。

关闭时刷新记录在 Javadoc for FilterOutputStream 中。

另一个答案:在Java中,当我调用OutputStream.close((时,我总是需要调用OutputStream.flush((吗?

说是的!如果您手动关闭它,它将被刷新

最新更新