Bonjour,
Je développe actuellement un système de transfert de fichiers octets par octets entre deux programmes Java utilisant les sockets UDP. Dans le cas de fichiers de type XML, aucun soucis pour envoyer et reconstituer mon fichier. Cependant, dans le cas de fichiers images, j'ai un souci pour écrire l'un des caractères contenus dans mon fichier. Ce caractère est (un petit carré, correspondant à 0x81 en hexadécimal). Ce caractère est remplacé par le caractère ? (0x3F en hexadécimale). Je ne sais pas par quel biais passer pour pouvoir récupérer l'intégralité de mon image.
Voici ce qui est en place actuellement :
1 - dans le programme émetteur :
- J'ai un DataInputStream pour lire dans mon fichier avec la méthode readInt().
- J'utilise un ByteBuffer pour écrire un entier dans mon buffer avec la méthode putInt.
- J'envoie l'array de mon ByteBuffer en invoquant la méthode monByteBuffer.array() (tableau de byte que j'envoie sur le datagramsocket).
2 - dans le programme récepteur
- Je récupère les tableau de byte de mon datagramSocket, et je manipule un ByteBuffer auquel j'affecte ce tableau de byte.
- J'utilise un FileWriter pour écrire dans le fichier créé avec la ligne suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 monFileWriter.write(new String(byteBufferReadData.array());
Partager