La única diferencia entre los dos es que writeUTFBytes()
no anteponga el mensaje con la longitud de la cadena (La RangeError se debe a 65535 es el número más alto que puede almacenar en 16 bits)
el lugar donde quiere usar uno sobre el otro depende de lo que estés haciendo. Por ejemplo, uso writeUTFBytes()
al copiar un objeto XML para que se comprima. En este caso, no me importa la longitud de la cadena, e introduciría algo extra en el código.
writeUTF()
puede ser útil si está escribiendo un servidor de transmisión/red, donde como prefija la longitud del mensaje, sabe cuántos bytes transmitir en el otro extremo antes del final del mensaje. Por ejemplo, tengo un mensaje de 200 bytes. Leí la longitud (entero de 16 bits), que me dice que el mensaje es de 100 bytes. Leí en 100 bytes y sé que es un mensaje completo. Todo después es otro mensaje. Si la longitud del mensaje decía que el mensaje era de 300 bytes, entonces sabría que tendría que esperar un poco antes de recibir el mensaje completo.
gracias divily – midhunhk
Buena respuesta. También hay esta publicación en el blog que básicamente dice lo mismo: http://www.rogue-development.com/blog2/2009/06/bytearray-writeutf-vs-writeutfbytes/ –