Galera, gostaria de saber como eu faço para trabalhar com bytes.
O que quero fazer é o seguinte: pegar tipos primitivos (int, short, etc) e convertê-los para bytes puros (byte[]), e após isso fazer o inverso, pegar esses array’s de bytes e recuperar o valor.
Como eu faço isso?
OBS.: o tipo/origem da stream que em que usarei esses dados é dispensável nesse caso, logo, usar um DataOutputStream no OutputStream não é uma opção.
Eu geralmente uso o ByteBuffer do pacote Java nio. É muito mais fácil trabalhar com ele e com os channels, ao invés de usar o método tradicional, por streams. Ele também já leva em consideração ordenação de bytes (little ou big endian).
Mas... pq vc não pode usar o DataInputStream e o DataOutputStream? Eles geralmente fazem esse trabalho sujo para vc. Se precisa mesmo fazer no braço, vc sempre pode recorrer a shifts. Por exemplo:
intnumero=255;bytebytes[4]=newbyte[4];for(inti=0; i < 4; i++)
{
byte[4-i]=(byte)(numero&0xFF);numero>> 8;
}
Y
Yky_Mattshawn
É que estou desenvolvendo um pequeno banco de dados para JavaME.
Algumas classes que encapsulam todo o tratamento puro de bytes dos RecordStore’s.
Quero aprender a mexer diretamente com bytes para não precisar criar muitos objetos (os OutputStream’s) durante os processamentos uma vez que estou partindo para a parte de indexação e autoincremento e reutilização de posições dentro da base de dados do dispositivo. É de suma importância que eu priorize a economia de memória.
Cara, tu podes me recomendar algum material sobre shifts? Essa manipulação totalmente sem objetos (???) de dados primitivos em bytes.