一個關於java.net.URL的問題.

beowulf發表於2005-11-22
本人正在寫一個程式,需要從某個固定的URL抓取HTML檔案.
我用下面語句來抓.

URLConnection conn = new URL("http://....").openConnection();
conn.connect();
int length = conn.getContentLength();
InputStream in = conn.getInputStream();
byte[] content = new byte[length];
in.read(content);
in.close();

現在問題來了,由於網路傳輸速度的問題,
我的content有時讀不滿length個位元組,
就自以為沒有可從in裡讀的了,從而程式執行下去了.
這樣我得到的content是不滿的.

我當然可以寫一個迴圈,來強迫 content 讀滿,
但是那樣似乎不是很自然.

有沒有更好的辦法,讓in.read()的時候自動做適當的等待?

謝謝,各位高手指教.

相關文章