2014-07-21 4 views
0

Je suis en train d'envoyer des informations avant d'envoyer le fichier à mon Socket Server via UTF, j'envoie seulement un nom de fichier:UTFDataFormatException: entrée malformé UTF Format

File fil=new File(filepath); 
    dos.writeUTF (fil.getName()); 

il fonctionne très bien, mais quand j'ajouter un peu Chaîne personnalisée It:

dos.writeUTF((("@[email protected]:"+roomName+"@FILENAME:"+fil.getName()))); 

i obtenir cette erreur:

UTFDataFormatException: malformed input UTF Format 

Pouvez-vous Aidez-moi S'il vous plaît?

+0

Quelle est la trace de la pile? – SLaks

+0

UTFDataFormatException: entrée mal formée Format UTF c'est la connexion au serveur Dude – dasdas

+0

Qu'est-ce que la trace de la pile d'exceptions? – SLaks

Répondre

0

Vous ne recevez pas cette exception lors de l'écriture. Vous l'obtenez lors de la lecture: typiquement lors de l'appel de readUTF() lorsque la chose suivante dans l'entrée n'est pas produite par writeUTF(). En d'autres termes, une erreur de protocole d'application. Dans ce cas, il n'est pas produit par ce que vous avez posté mais par ce que vous n'avez pas posté. Je ne vois pas pourquoi vous n'écrivez pas l'élément de données étendu dans des écritures séparées et ne le lisez pas dans des lectures séparées, plutôt que de vous donner la peine de le concaténer puis de le décomposer à nouveau.

Je ne sais pas non ce que tous les parenthèses supplémentaires sont censés être pour. N'écrivez pas de syntaxe redondante.

+0

i trouvé la réponse, merci de quelque façon, mais par ailleurs, la raison pour laquelle je l'ai joint les est togeather moindre (même un peu) la communication, donc une vitesse plus élevée – dasdas

+0

La différence de vitesse ne sera pas mesurable, mais la complication supplémentaire et le coût et le risque de la façon dont vous l'avez fait est certainement. – EJP

+0

quel risque? vous voulez dire NPE Exception Positivity? – dasdas