Foros del Web » Programación para mayores de 30 ;) » Java »

Excepción de DataInputStream

Estas en el tema de Excepción de DataInputStream en el foro de Java en Foros del Web. Hola, gracias por leer mi pregunta. En un trozo de código que tengo en Java, debo recibir información desde un servidor usando un DataInputStream y ...
  #1 (permalink)  
Antiguo 18/07/2011, 11:55
Avatar de Ferkhis  
Fecha de Ingreso: mayo-2011
Ubicación: Medellín
Mensajes: 52
Antigüedad: 13 años
Puntos: 2
Pregunta Excepción de DataInputStream

Hola, gracias por leer mi pregunta.

En un trozo de código que tengo en Java, debo recibir información desde un servidor usando un DataInputStream y el tamaño de los paquetes y los bytes que contienen puede variar. Como los caracteres que llegan desde el servidor tienen acentos y en algunos casos caracteres extraños, uso la instrucción readUTF() para capturar correctamente la información sin pérdida de caracteres y la muestro en un textbox.
Para ser más específico uso esta línea:

IncomingArray = Conexion.InputMEssage.readUTF().getBytes("UTF-8");

De manera que pueda leer la información que viene desde el socket conectado al servidor, sin embargo obtengo esta excepción:

java.io.UTFDataFormatException: malformed input around byte 49
at java.io.DataInputStream.readUTF(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at GetData$1.run(GetData.java:19)

Alguien sabría de qué se trata? Muchas gracias!
PD: El número malformed inpur arround byte 49 cambia usualmente. Quisiera saber como puedo evitar esta excepción, la aplicación recibe bytes de todos los valores desde 00 hasta FF. Gracias!
  #2 (permalink)  
Antiguo 19/07/2011, 00:33
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 2 meses
Puntos: 17
Respuesta: Excepción de DataInputStream

Si recibes bytes desde el 00 al FF no puedes usar readUTF porque algunos caracteres no tendrán codificación UTF.

Pasa el string a bytes y utiliza write

http://download.oracle.com/javase/1....putStream.html
  #3 (permalink)  
Antiguo 19/07/2011, 15:02
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Excepción de DataInputStream

si lees con readUTF(), en el otro lado tienen que enviarte con writeUTF()

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: datainputstream, servidor, socket
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:44.