2012-12-26 54 views
2

我正在使用Java NIO來接受,讀取和寫入我的服務器。Java NIO read()End of Stream

documentation它表示SocketChannel.read()函數將返回從套接字讀取的字節數,如果達到流結束,則返回-1。

現在 - 我真的不明白"End Of Stream"是什麼意思?是否與borken pipe錯誤相同?

這是否意味着連接丟失的雙方,我應該關閉SocketChannel?

我將是真正偉大滿,如果有人能解釋一下它 - 給使用和正確行爲根據它的一些例子..

+1

流結束意味着沒有更多可讀的內容。即您已經讀取了流中的所有數據(文件末尾)。 – svz

+0

不是什麼int read = read()---> read = 0意味着什麼?它什麼都不讀?並沒有什麼可讀的? –

+1

這意味着,所有數據都從流中讀取,但流可以存活。 –

回答

2

末中流意味着有什麼更多的閱讀,因爲另一端已關閉流。

值爲0不是什麼,它是零。

如果連接意外丟失,您將收到異常。即另一端沒有優雅地關閉連接。