La lecture d'une page web en Java IOException Prématuré EOF

Je suis très souvent un "Prématuré EOF' Exception lors de la lecture d'une page web.

Ce qui suit est la StackTrace

java.io.IOException: Premature EOF
at sun.net.www.http.ChunkedInputStream.readAheadBlocking(ChunkedInputStream.java:556)
at sun.net.www.http.ChunkedInputStream.readAhead(ChunkedInputStream.java:600)
at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:687)
at java.io.FilterInputStream.read(FilterInputStream.java:133)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2968)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:154)
at java.io.BufferedReader.readLine(BufferedReader.java:317)
at java.io.BufferedReader.readLine(BufferedReader.java:382)
at Utilities.getPage(Utilities.java:24)  while ((line = rd.readLine()) != null) {
at TalkPage.<init>(TalkPage.java:15)
at Updater.run(Updater.java:65)

Suivant est le getPage() la méthode

public static String getPage(String urlString) throws Exception {
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuffer sb = new StringBuffer();
String line;
while ((line = rd.readLine()) != null) {  //LINE 24
sb.append(line);
}
return sb.toString();
}

Qu'est ce qu'un permature EOFException et pourquoi est-elle présente dans ce cas particulier et comment peut-il être évité?

Quelques autres informations: La taille de la page en cours de lecture est d'environ 20 KO et je suis en train de lire de nombreuses pages dans mon programme ( environ 20 000 )

InformationsquelleAutor Ranjith | 2012-11-03