RobertoSoaresPJ 11 de nov. de 2004
“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 & # 40 ; b , 0 , b2 , 0 , 500 & # 41 ;;
Dê uma olhada aqui e aqui .
Fui!
FelipePJ 11 de nov. de 2004
tipo, pq vc n faz assim:
temp = read & #40 ;b, 0, b.length);
b2 = new byte & #91 ;temp];
for & #40 ;int i = 0; i < b.length; i++) b2[i] = b[i];
mucacbPJ 11 de nov. de 2004
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
FelipePJ 11 de nov. de 2004
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…