DataInputStream, fonction read(), délai trop élévé quand =-1
Bonjour à tous,
je suis en train de développer un client HTTP en Java (parce que la classe HttpURLConnection ne me plaît pas).
J'envoie donc une requête à un serveur apache (get ou post) qui me renvoie une réponse avec la ressource demandée (un fichier html par exemple).
Je récupère ce fichier grâce à une fonction "saveIntoFile()" qui utilise la fonction read de la classe DataIntputStream. Voici ma boucle while qui lit mon flux entrant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| byte[] buff = new byte[bufferSize];
int readBytesNb;
byte[] readBytes;
while ((readBytesNb = reader.read(buff, 0, bufferSize)) != -1) {
if (readBytesNb == bufferSize) {
writer.write(buff);
} else {
readBytes = new byte[readBytesNb];
System.arraycopy(buff, 0, readBytes, 0, readBytesNb);
writer.write(readBytes);
}
} |
Tant que la fonction read retourne autre chose que -1, tout fonctionne correctement. Dès lors qu'elle retourne -1 (c'est-à-dire qu'il n'y a plus rien à lire), il se passe bien 3 secondes avant de sortir de la boucle ! 8O
Je ne comprends absolument pas d'où peut provenir ce délai beaucoup trop long à mon goût, constant quelque soit la taille du fichier.
Quelqu'un aurait-il une idée ? ;)