Bonjour,
J'ai un problème assez spécial avec l'utilisation d'un inputStream sur une url local. Voici mon code:
Le code ci dessus est l'une des nombreuses méthodes que j'ai testé mais qui me donne le même problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 public void Test2() throws IOException { final URL url = new URL("http://localhost/Wildlife.wmv"); final InputStream in = url.openStream(); final FileOutputStream destinationFile = new FileOutputStream("F:\\Mes documents\\Wildlife.wmv"); final byte[] buffer = new byte[4000]; int bytesRead = 0; while ((bytesRead = in.read(buffer)) != -1) { System.out.println(bytesRead); destinationFile.write(buffer); } destinationFile.flush(); }
Si je teste ce code avec java 1.6 32bit et 1.6 64bit, tout fonctionne bien. Mon fichier de 25 Mo est correctement récupéré. Par contre si je teste avec java 1.7 64 bit, ça ne fonctionne pas. L’exécution se bloque dans le read après avoir lu 18285 bytes.
La sortie donne:
4000
4000
4000
4000
2285
J'ai eu l'idée de tester avec un autre fichier en local et même problème. Par contre avec un fichier sur une url distante, j'ai testé: http://apache.mirrors.lucidnetworks....cat-6.0.35.zip, le téléchargement s'effectue correctement.
Du coup je n'y comprend plus rien. Qu'est ce qui bloque mon téléchargement en java 1.7 sur une URL en local? Est ce que quelqu'un aurait une idée du problème ou de ce que je pourrais encore tester?
Merci d'avance pour votre aide
Partager