Вывод DataOutputStream.writeUTF()
- это настраиваемый формат, предназначенный для чтения DataInputStream.readUTF()
.
javadocs метода writeUTF
, который вы вызываете, говорят:
Записывает строку в базовый выходной поток с использованием модифицированной кодировки UTF-8 машинным образом.
Во-первых, два байта записываются в выходной поток, как если бы метод
blockquote>writeShort
выдавал количество байтов. Это значение представляет собой количество фактически выписанных байтов, а не длину строки. По длине каждый символ строки выводится последовательно, используя модифицированную кодировку UTF-8 для символа. Если исключение не выбрасывается, счетчикwritten
увеличивается на общее количество байтов, записанных в выходной поток. Это будет как минимум два плюс длинаstr
, и не более двух плюс трижды длинаstr
.