Je voudrais transférer un fichier plus quelques données supplémentaires sur un socket tcp. Ce serait vraiment bien si je pouvais le faire en une fois sans avoir à diviser les données en plusieurs transmissions.Transfert de fichier et de données supplémentaires via TCP (Java)
Quelque chose comme
String data = "some data to be transferred";
File f = new File("myfile");
byte[] fileData = ... //read bytes from file
out.write(data + fileData); //out is some OutputStream
Maintenant, quel genre de outputstream aurais-je utiliser au mieux pour cela? Comment puis-je séparer les données et le contenu du fichier à la réception?
EDIT: J'ai déjà un client et un serveur tcp, tous deux utilisant PrintWriter et BufferedInputReader. Les seules données transmises jusqu'à présent sont des chaînes simples. Je cherche un moyen facile d'intégrer le transfert de fichiers.
Je suis à la recherche d'une solution qui s'intègre facilement avec le code client/serveur tcp existant où seules les chaînes sont transmises en utilisant PrintWriter et BufferedInputReader. – mort
Ensuite, vous devriez peut-être essayer de convertir 'byte []' dans la chaîne ['Base64'] (http://commons.apache.org/codec/apidocs/org/apache/commons/codec/binary/Base64.html), mais ce n'est pas une bonne solution. Au lieu de cela, vous pouvez utiliser ['DataOutputStream'] (http://download.oracle.com/javase/6/docs/api/java/io/DataOutputStream.html) et [' DataInputStream'] (http://download.oracle .com/javase/1.4.2/docs/api/java/io/DataInputStream.html). Ils vous permettent d'envoyer des chaînes et des 'byte []' raw à la fois. –
Ok, je pense que je vais aller pour le DataInput/OutputStream – mort