DataOutputStream t = new DataOutputStream(***); Probleminha...-
4 respostas
dcbasso
Pessoal estou com problemas com a classe “DataOutputStream”. Ela atende a minha necessidade de gravar informações literais, como variaveis int, long, byte… mas todo número que mando salvar ele coloca no arquivo mais 8bits ( 2 Hexadecimais) no final de cada variavel salva…
Será que não tem como remover isso?
Gravar 1 byte - writeByte
Gravar 2 bytes - writeShort
Gravar 4 bytes - writeInt
Gravar 8 bytes - writeLong
Gravar 4 bytes como um float - writeFloat
Gravar 8 bytes como um double - writeDouble
Gravar uma string, com indicação de comprimento (2 bytes no começo) e codificação UTF-8 - writeUTF
Não se esqueça que você precisa de um editor hexadecimal para olhar a saída - não dá para carregar no Notepad (e pior ainda, salvar).
dcbasso
thingol to usando tudo que você disse e olhando no NotePad e no WinHex… ;]
Infelizmente ele sempre que você usa um writeByte, writeShort, writeInt, writeLong ele coloca algo como um separador, um valor de 00 em hexadecimal…
se eu mando salvar o valor 10 assim:
...
short aux = 10;
...
VARIAVEL.writeShort(aux);
...
ele deveria salvar no arquivo assim: (em HEXADECIMAL)
-> 00 0A
mas ele salva assim:
-> 00 0A 00
aaa resolvido… era um problema de um char, que vinha logo logo após a inserção de números… agora tá certo… hehehe
eu coloco um char ‘;’ logo após um número, mas usando o método writeChar(’;’), mas o certo é só mandar um write(’;’);
uhauhauhauha acontece, acontece… acho que agora vai dar tudo certo!