1. 程式人生 > >Java Socket|IO流關閉|shutdownInput|shutdownOutput

Java Socket|IO流關閉|shutdownInput|shutdownOutput

這裡直接給出結論,因為沒有什麼道理可講,編碼的時候不要寫觸犯這些規則的程式碼即可,

OutputStream os = socket.getOutputStream();
os.close();
InputStream is = socket.getInputStream();
is.close();

類似這種關閉流的操作會導致Socket關閉,所以基本上你是沒有理由去呼叫輸入輸出流的close()方法的,除了在最後清理的時候,另外我們知道在呼叫讀取方法時,多數是阻塞的,所以你的程式必須要考慮到這一點,要防止對方長時間沒有呼叫shutdownOutput()或其他結束輸出的方法時,你的執行緒出現一直讀取阻塞的情形,像是執行緒假死一樣,當然,如果你清楚的知道你的程式在做什麼,這也無妨。