我想寫出具有以下基本形式的一些簡單的插座碼 -插座被試與資源封閉
try(BufferedReader request = new BufferedReader(new InputStreamReader(sock.getInputStream()))){
//Do some work...
}
//BufferedReader gets closed, but also makes the socket close
...
...
response.write(blah);//Causes exception because socket is closed
我的問題是,插座被關閉,但我不認爲它應該是。 try-with-resources創建一個BufferedReader,然後在我離開try塊時自動關閉它,但由於某種原因它也關閉了整個套接字!所以,當我在後來使用相同的套接字時得到我的響應代碼時,我得到一個異常。有沒有什麼辦法解決這一問題?或者我只是不得不使用試用資源(這將不太理想)?
你碰巧知道什麼流不傳播關閉()? –
在Java運行時無。您需要編寫自己的 –
「BufferedReader.close()關閉支持流」...並關閉套接字的輸入或輸出流會關閉另一個流和套接字本身。 – EJP