Bonjour,
j'ai un morceau de code qui fonctionne, le voici le voilà :
et quand je passe à la version avec des buffers, ca ne fonctionne plus :
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 fichierAEnvoye = new File("e:\\CoffreFort\\recv.pdf"); try { StreamClientFile = new FileInputStream(fichierAEnvoye); DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("c:\\essai.pdf"))); long tailleMaxBuffer = 1024; long tailleFichier = fichierAEnvoye.length(); long envoye = 0; long tailleFinaleBuffer = fichierAEnvoye.length()-envoye; byte tmpbuf[] = new byte[(int)tailleFinaleBuffer]; envoye += StreamClientFile.read(tmpbuf); dos.write(tmpbuf); System.out.println("J'ai envoyé "+envoye+" octets."); } catch(Exception exc) { System.out.println("Exception : "+exc); }Dans le premier cas, j'ai l'intégralité du fichier, dans le deuxième cas, il semblerait qu'il manque des données à la fin du fichier.
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
25
26
27
28
29
30 fichierAEnvoye = new File("e:\\CoffreFort\\recv.pdf"); try { StreamClientFile = new FileInputStream(fichierAEnvoye); DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("c:\\essai.pdf"))); long tailleMaxBuffer = 1024; long tailleFichier = fichierAEnvoye.length(); long envoye = 0; while(tailleFichier - envoye > tailleMaxBuffer) { byte tmpbuf[] = new byte[(int)tailleMaxBuffer]; envoye += StreamClientFile.read(tmpbuf); dos.write(tmpbuf); } long tailleFinaleBuffer = fichierAEnvoye.length()-envoye; byte tmpbuf[] = new byte[(int)tailleFinaleBuffer]; envoye += StreamClientFile.read(tmpbuf); dos.write(tmpbuf); System.out.println("J'ai envoyé "+envoye+" octets."); } catch(Exception exc) { System.out.println("Exception : "+exc); }
Vous allez me dire que mon code ne fait que copier un fichier pdf et qu'il y a pleins d'aures méthodes. Moi, ce que j'aimerais c'est qlqchose de proche car en réalité, mon code est beaucoup plus large (utilisation de sockets réseau SSL à travers lesquels doivent transiter les fichiers pdf).
D'avance merci
Partager