簡體   English   中英

為什么InputStreamReader是read()塊而不是返回-1?

[英]Why does InputStreamReader read() block instead of returning -1?

我正在使用java的InputStreamReader read()函數。 當我到達輸入流的末尾時,我應該進入我的int變量-1的值,但它轉到阻塞。 為什么我不在輸入流的末尾得到-1? (我已經逐字逐句地調試它,確保它實際上是輸入結束並且連接套接字處於活動狀態)。

使用ready()函數是一個很好的解決方案:

if (isr.ready())
    currCharVal = isr.read();

提前謝謝,蓋伊。

如果另一端未關閉連接,則會發生這種情況。 當套接字關閉時,read()將返回-1。

在我的經驗中,使用就緒和可用是相當不可預測的。 我會讀到(byte [])直到達到結束並期望另一端在完成時關閉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM