Tenho um byte lido que é um inteiro e tenho que transforma-lo em uma string para posteriormente envia-lo via socket e no outro cliente pega-lo como string e converte-lo denovo para inteiro e ser novamente um byte lido… mas não consigo fazer…
Passei ele para uma string… mas não adiantou muito… e também verifiquei que não é este o erro… o problema esta em como eu transformar o meu buffer de leitura em string… tentei assim mas nãodeu certo…
ByteArrayOutputStreambout=newByteArrayOutputStream();bis=newBufferedInputStream(newFileInputStream(arquivo));byte[]buffer=newbyte[1024];ByteArrayOutputStreambout=newByteArrayOutputStream();DataOutputStreamdout=newDataOutputStream(bout);intnBytesLidos;while(true){nBytesLidos=bis.read(buffer,0,buffer.length);if(nBytesLidos<=0)break;dout.write(buffer,0,nBytesLidos);Stringmeubyte=Base64.encode(bout.toByteArray());//ENVIA MEU BYTE PARA O SOCKET}
dedspr
Como ninguem respondeu encerrei minhas espectativas de fazer funcionar assim
O
ozix
No final das contas você quer ler de um arquivo para uma String? Se sim...
Eu ainda acho que você está seguindo por um caminho errado, muito errado. O ideal é transmitir bytes de um lado para o outro, não Strings (que, no fundo, são só uma recodificação burra dos mesmos bytes).
Você estará comprometendo seriamente a performance da rede e carregando o servidor fazendo dessa forma.
Agora, crie um BufferedStream e use os métodos new String e Integer.parseInt para fazer o que você quer. Faça isso byte-a-byte, num for. Não conheço nenhuma forma de converter um Array inteiro numa tacada só.
Uma possibilidade mais fácil seria criar um parser para o formato do toString do ArrayList (no fundo, seria só eliminar o [ ], fazer um split na , e depois um trim). E então, carregar seus bytes num ArrayList<Byte> e enviar o toString() disso. Mas isso é bem mais ineficiente.