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 objeto out é esse:

DataOutputStream out = new DataOutputStream(client.getOutputStream());

Obrigado.

3 Respostas

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 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.

Obrigado! Foi o bastante para me esclarecer.

Criado 14 de junho de 2011
Ultima resposta 14 de jun. de 2011
Respostas 3
Participantes 3