Bonjour à tous.
Dans le programme que je suis entrain de corriger, je dois, à un moment donné, télécharger un fichier sur internet et l'enregistrer sur le disque de la machine.
(Env : Windows 7, Java7).
Ce sont des fichiers doc et pdf.
Le problème 'est que j'ai des erreurs qui apparaissent dans le "code" du fichier récupéré qui le rendent illisible. Le poids du fichier est proche de la taille réelle. (à quelques octets pres). Et quand je l'ouvre avec un lecteur de pdf, par exemple, ça m'affiche une page blanche.
Voici le morceau de code :
cvDL est du type String et contient le fichier récupéré par une requête HTTP ici :
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
16
17
18
19
20
21
22 try { System.out.println(cvDL); InputStream in = new ByteArrayInputStream(cvDL.getBytes()); FileOutputStream writenFile = new FileOutputStream( fichier); byte[] buffer = new byte[1024]; int read; while ((read = in.read(buffer)) > 0) writenFile.write(buffer, 0, read); writenFile.flush(); writenFile.close(); } catch (Exception e) { e.printStackTrace(); }
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
16
17
18
19
20
21
22
23
24 HttpPost httppost = new HttpPost(cv.getPathDownloadFile()); HttpResponse response = execute(httpclient, httppost, nameValuePairs); String cvDL = ""; try { BufferedReader reader = new BufferedReader(new InputStreamReader(response .getEntity().getContent())); String ligne = ""; while ((ligne = reader.readLine()) != null) { cvDL += ligne + "\n"; } reader.close(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
Je n'arrive pas à trouver d'où ces erreurs de copie peuvent venir.
Problème de buffer ? d'encodage ?
Partager