This is more like a comment than a good answer: (I would rather add a comment to one the answers above but I don't have the rep)
The question, as I read it, is "can I close a stream on a socket and then open a stream on the same socket?"... but people seem to be answering this: "how should I cleanly close my socket?"... which is not the question being asked.
The answer to the question being asked is "no". When you close the stream, you close the socket.
(I do understand why, in at least one case, someone might ask this question. When you are streaming Java Properties over a socket the receiving end has to see EOF to recognize the end of the properties - for the receiver to see EOF the sender has to close the stream/socket. BUT, if you have a command/response protocol operating over that socket, you DON'T want to close it or you'll lose the channel that you want to send a response on. See Java streaming Properties over Socket for one way to handle this)