Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/04/2012, 17:18
cseasy
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 15 años, 3 meses
Puntos: 0
Error DataInputStream

Muy buenas.

He creado un juego en Flash y perfectamente he conseguido que funcione todo, menos una perte. Resulta que cuando en el juego el usuario habla por el chat, si este mensaje contiene tildes, eñes, o carácteres españoles como (¡, ¿) se corta y envía de ese carácter hacia atrás y si se pone el carácter al principio lanza esta exepción:

Código:
java.io.UTFDataFormatException: malformed input: partial character at end
	at java.io.DataInputStream.readUTF(DataInputStream.java:643)
	at java.io.DataInputStream.readUTF(DataInputStream.java:564)
	at com.energy.communication.in.Talk.run(Talk.java:45)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
Uso el método readUTF() de DataInputStream.
PD: El DataInputStream lo formo de la siguiente manera:
Código:
public void ReadMessage(ChannelBuffer Message, MessageEvent e) throws Exception
      {
    	  int Header = Message.readShort();
    	  String Analized = "<No recibe más datos>";
    	  if(Message.readableBytes() > 0)
    	  {
    		  Analized = "";
    		  Message.markReaderIndex();
    		  while(Message.readableBytes() != 0)
    		  {
    			  byte[] b = new byte[] { Message.readByte() };
    			  Analized += (new String(b)).toString();
    		  }
        	reader = new DataInputStream(new ByteArrayInputStream(Analized.getBytes()));
}