title: What is the difference between closing Input/OutputStream and closing Socket directly?
body: <p>I just wondering what java does when we call close on the inputStream and outStream associated with a socket. What is the difference from the close call on the socket, i.e Socket.close().</p>
  
  <p>if we just close the io stream on the socket, but not close the socket, can we reopen the io stream on the socket again?</p>
  
  <p>Thanks in advance!</p>