Hay una oración en la discusión sobre writeUTF en el capítulo "Transmisiones y archivos" de "Programación central de Java" que no entiendo. Pídale a los expertos que la aclaren.
La mejor manera es leer la descripción de la API de JAVA y practicar
La descripción de la API es así
public final void writeUTF(String str) throws IOException
Escribe una cadena en el flujo de salida subyacente de forma independiente de la máquina utilizando una versión modificada de la codificación UTF-8.
Primero, se escriben dos bytes en el flujo de salida a través del método writeShort, indicando el número de bytes que siguen. El valor es el número real de bytes escritos, no la longitud de la cadena. Según esta longitud, cada carácter de la cadena se genera secuencialmente utilizando la codificación UTF-8 modificada del carácter. Si no se produce ninguna excepción, el contador escrito se incrementa según el número total de bytes escritos en el flujo de salida. El valor es al menos 2 más la longitud de str y como máximo 2 más tres veces la longitud de str.
Especificado por:
writeUTF en la interfaz DataOutput
Parámetros:
str: la cadena que se escribirá.
Lanza:
IOException: si se produce un error de E/S.