Byte lido int para String

Olá pessoal estou com um problemão…

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…

Tentei assim mas não deu muito certo

nBytesLidos = bis.read (buffer, 0, buffer.length); String.valueOf(nBytesLidos)

Se alguem puder me ajudar

tentou passar esse valor para uma string ou apenas aplicou o valueOf?


nBytesLidos = bis.read (buffer, 0, buffer.length);
String minhaString = String.valueOf(nBytesLidos) 

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…

ByteArrayOutputStream bout = new ByteArrayOutputStream();  

bis = new BufferedInputStream (new FileInputStream (arquivo));
byte[] buffer = new byte[1024];

ByteArrayOutputStream bout = new ByteArrayOutputStream();  
DataOutputStream dout = new DataOutputStream( bout );  
            
int nBytesLidos;
while (true) {
nBytesLidos = bis.read (buffer, 0, buffer.length);
if (nBytesLidos <= 0)
    break;

dout.write(buffer, 0, nBytesLidos);
String meubyte = Base64.encode(bout.toByteArray());
               
//ENVIA MEU BYTE PARA O SOCKET
}

Como ninguem respondeu encerrei minhas espectativas de fazer funcionar assim

No final das contas você quer ler de um arquivo para uma String? Se sim…

[code]FileInputStream fis = new FileInputStream(arquivo);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader reader = new BufferedReader(isr);

StringBuilder sb = new StringBuilder(reader.readLine());
while (reader.ready()) {
sb.append("\n").append(reader.readLine());
}
reader.close();
isr.close();
fis.close();
String meubyte = sb.toString();[/code]

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.