Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否关闭套接字也将关闭/刷新输入/输出流_Java - Fatal编程技术网

Java 是否关闭套接字也将关闭/刷新输入/输出流

Java 是否关闭套接字也将关闭/刷新输入/输出流,java,Java,我有一个这样的节目 Socket socket = serverSocket.accept(); InputStream in = socket.getInputStream(); OutputStream out = socket.getOutputStream(); ...some read and write here... socket.close; 代码运行良好。但是如果我关闭插座,我不确定输入/输出是否关闭。另外,我没有调用.flush(),数据将如何发送?另一个答案: 他说是

我有一个这样的节目

Socket socket = serverSocket.accept();
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();

...some read and write here...

socket.close;
代码运行良好。但是如果我关闭插座,我不确定输入/输出是否关闭。另外,我没有调用.flush(),数据将如何发送?

另一个答案:

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

  • 关闭套接字不会刷新输出流,但会同时关闭流和套接字
  • 关闭输入流不会刷新输出流,但会同时关闭流和套接字
  • 关闭输出流将刷新输出流并同时关闭流和套接字
  • 您应该关闭围绕从套接字获得的输出流的最外层输出流。例如:

    BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
    DataOutputStream dos = new DataOutputStream(bos);
    
    关闭“dos”。这会刷新它,刷新“bos”,并关闭所有内容


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

    请参阅关闭套接字将关闭与此套接字关联的输入/输出流。但是输出流会被刷新吗?也不能回答这个问题。您要求关闭套接字,而不是关闭输出流。