De byte[18] para byte[12]

4 respostas
M

Seguinte estou recebendo bytes pelo DataInputStream = ds

ex

byte[] b = new byte[1000];

int temp;

while ((temp = ds.read(b)) != -1) {

o temp eh o numero de bytes que veio  exemplo se veio 500 bytes

byte[] b2 = new byte[500]; // new byte[temp];

e como eu faria para tocar do 0 ao 500 do b -> b2;

estou perguntando isso exatamente para sair do loop que teria que fazer…
tem como… tentei casting e nao deu … se alguem desse uma luz ajudaria bastatne

4 Respostas

R

“mucacb”:
Seguinte estou recebendo bytes pelo DataInputStream = ds

ex

byte[] b = new byte[1000];

int temp;

while ((temp = ds.read(b)) != -1) {

o temp eh o numero de bytes que veio  exemplo se veio 500 bytes

byte[] b2 = new byte[500]; // new byte[temp];

e como eu faria para tocar do 0 ao 500 do b -> b2;

estou perguntando isso exatamente para sair do loop que teria que fazer…
tem como… tentei casting e nao deu … se alguem desse uma luz ajudaria bastatne

System.arraycopy(b, 0, b2, 0, 500);

Dê uma olhada aqui e aqui.

Fui!

F

tipo, pq vc n faz assim:

temp = read(b, 0, b.length);
b2 = new byte[temp];
for (int i = 0; i < b.length; i++) b2[i] = b[i];
M

Seguinte a primeira saida que encontrei foi fazer o loop… dai pensei que poderia ter outra forma… (evito loop ao maximo)…

cara sobre o System.copyArray --> eh soh pra objetos… byte[] nao eh objeto…

se tiver outra sugestao… eh soh pra tentar deixar o codigo um pouco mais rapido… pois rapidez nunca eh demais!!!

valeu

F

n tem jeito nao… o arraycopy, alem de serviro soh pra objetos, faria um loop do mesmo jeito e ficaria ainda mais lento devido a chamada ao metodo…

Criado 11 de novembro de 2004
Ultima resposta 11 de nov. de 2004
Respostas 4
Participantes 3