Qual a diferença entre writeUTF() e writeChars() ? [Resolvido]
3 respostas
Andre_Rosa
Eu estava dando uma olhada em alguns exemplos de cliente/servidor com sockets em Java, e notei que, para enviar uma string, estavam fazendo o seguinte:
out.writeUTF("Ola mundo!");
mas eu estava dando uma olhada nos métodos do objeto out, e vi que também há o método writeChars(), que recebe uma string como parâmetro. Há alguma diferença entre eles?
O writeChars simplesmente converte a String para os bytes correspondentes e os envia.
A parte que recebe precisa pegar essa informação um char de cada vez, sem saber o tamanho total.
Já o writeUTF converte para bytes em um formato “especial”, que contém no início um pequeno cabeçalho com a quantidade de bytes que aquela String irá ocupar.
O lado que recebe a informação chama o método readUTF, que entende esse formato, recebe a quantidade exata de bytes da String e faz a conversão.
Não sei se fui claro o suficiente… qq coisa avisa.
daveiga
Acho que esse writeUTF está deprecated, não?
Andre_Rosa
gomesrod:
Olá,
O writeChars simplesmente converte a String para os bytes correspondentes e os envia.
A parte que recebe precisa pegar essa informação um char de cada vez, sem saber o tamanho total.
Já o writeUTF converte para bytes em um formato “especial”, que contém no início um pequeno cabeçalho com a quantidade de bytes que aquela String irá ocupar.
O lado que recebe a informação simplesmente chama o método readUTF, que entende esse formato, recebe a quantidade exata de bytes da String e faz a conversão.
Não sei se fui claro o suficiente… qq coisa avisa.