Desafio a todos os membros do Forúm

Na verdade não é um desafio, é mais pra mim ajudar num programa que estou a semanas tentando terminar.

Quero que alguem tente fazer um programa que pegue os bytes
e transforme em char.

Queria que fizessem desse jeito:

byte|char
0x00|p
0x01|l
0x02|i

Taí é só pra mim ter uma noção de como fazer.

Fico muito agradecido a todos que responderem.

Oi,

http://www.javacodegeeks.com/2010/11/java-best-practices-char-to-byte-and.html

Boa sorte.

Tchauzin!

Dá uma olhadinha nesse link http://www.javacodegeeks.com/2010/11/java-best-practices-char-to-byte-and.html que tem explicando o que você quer.
Abraços.

EDITADO: Desculpa Lina, acabei colocando na mesma hora que você e repeti o endereço…

Vou dar um exemplo bem estúpido.

Digamos que você tenha a seguinte tabela de correspondência byte -> caracter:

byte|char
 00 | a
 01 | z
 02 | q
 03 | r
 04 | x
 ...
 ff | $

Pra começar, já ouviu falar de arrays? Digamos que você já tenha ouvido falar. Você define um array:

char[] tabela = new char [256];

Isso porque há 256 bytes possíveis.
A idéia é que a posição 00 da tabela corresponda ao byte 00 (que é o char ‘a’), a posição 01 seja o char ‘z’, e assim por diante.
Você deve fazer o seguinte, para preencher a tabela:

tabela [0x00] = 'a';
tabela [0x01] = 'z';
...
tabela [0xff] = '$';

OK? Então, para saber qual é o caracter correspondente ao byte 0x35, por exemplo, basta você recuperar o char correspondente dessa tabela.
Por exemplo:

byte b = 0x35;
char ch = tabela  [b & 0xFF]; // isto é feito para converter os bytes de (byte) 0x80 até (byte) 0xFF para os valores corretos que devem ser usados para indexar um array

Mais tipo pra ler o arquivo eu tenho que usar um array de bytes né?
E essa conversão não é possível com um array de bytes.

E como eu colo o array de char e depois uso essa tabela de conversão?

[quote=entanglement]Vou dar um exemplo bem estúpido.

Digamos que você tenha a seguinte tabela de correspondência byte -> caracter:

byte|char
 00 | a
 01 | z
 02 | q
 03 | r
 04 | x
 ...
 ff | $

Pra começar, já ouviu falar de arrays? Digamos que você já tenha ouvido falar. Você define um array:

char[] tabela = new char [256];

Isso porque há 256 bytes possíveis.
A idéia é que a posição 00 da tabela corresponda ao byte 00 (que é o char ‘a’), a posição 01 seja o char ‘z’, e assim por diante.
Você deve fazer o seguinte, para preencher a tabela:

tabela [0x00] = 'a';
tabela [0x01] = 'z';
...
tabela [0xff] = '$';

OK? Então, para saber qual é o caracter correspondente ao byte 0x35, por exemplo, basta você recuperar o char correspondente dessa tabela.
Por exemplo:

byte b = 0x35;
char ch = tabela  [b & 0xFF]; // isto é feito para converter os bytes de (byte) 0x80 até (byte) 0xFF para os valores corretos que devem ser usados para indexar um array

[/quote]

PERFECT!

Essa conversão eu tbm consegui:

[code]char[] converter = new char [256];
{
converter [0x00] = ‘a’;
converter [0x01] = ‘b’;
converter [0x02] = ‘c’;
converter [0x03] = ‘d’;
converter [0x04] = ‘e’;
converter [0x05] = ‘f’;
};

    byte numhex = (byte) 0x00
    char convertido = converter  [numhex & 0xFF];
    String resultado = Character.toString(convertido);[/code]

Consegui fazer essa conversão, agora como fasso o reverso?
Char para Byte.