Java - .toByteArray()

 
Vista:

.toByteArray()

Publicado por lilu (112 intervenciones) el 29/05/2006 16:01:35
Buenos dias a todos, feliz comienzo de semana y espero que ya se hayan visto "X-Men III"...

Bueno hoy me encuentro aqui porque tengo una duda con este señor: toByteArray.

Lo que pasa es que tengo un arreglo de bytes y quiero obtener esos bytes y guardarlos en otro arreglito, es decir:

(Código de Chui)
byte[] losBytes;
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
losBytes = bytes.toByteArray();

(En realidad esto es lo que tengo en el codigo)

Temo que toByteArray no esta obteniendo los bytes que son, es decir, si tengo 203, toByteArray lo que me muestra es 18, es decir obtiene 18, lo sé porque lo mando a imprimir y eso es lo que me muestra: "18".

1.- Que exactamente es lo que esta haciendo toByteArray???
2.- Como obtengo exactamente los bytes o todos los bytes de ByteArrayOutputStream??
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:.toByteArray()

Publicado por Juan (131 intervenciones) el 29/05/2006 16:27:18
http://www.geocities.com/CollegePark/Quad/8901/cap10.htm
http://perseo.cs.buap.mx/~danguer/projects/curso_java/manual/node15.html
http://www.entlog.org/index.php?section=14
http://www.programacion.com/java/tutorial/joa_red/4/

Te mando estos liks, pero linda recuerda algo los valores de un byte van desdes -128 hasta 127. Creo que 203 no esta en este rango jejeejjeje por ende no te lo va a mostrar. Ahora lo raro es que te muestre 18, te deberia mostrar 203 mod 127. Si estas guardando caracteres, los caracteres se almacenan con 2 bytes, no con uno. Me suena que deberias castear algo, aunque si tu arregl oes de bytes el 203 no es un valor en ese arreglo. Revisa mientras, y comentas a ver que tal.

Juan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:.toByteArray()

Publicado por lilu (112 intervenciones) el 29/05/2006 21:03:38
Ok, Juan, ya estoy viendo los link que me enviaste, pero no creo que dure mucho en la maquina porque ando con colicos........... ;-\

Te cuento luego.

Gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:.toByteArray()

Publicado por manru (161 intervenciones) el 29/05/2006 17:56:48
hola...

El codigo esta bien... pero en que lugar has llenado el ByteArrayOutputStream al que le pides toByteArray ???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:.toByteArray()

Publicado por lilu (112 intervenciones) el 29/05/2006 20:51:07
Ok ya te lo mando, por si acaso:

try
{
Socket socket = new Socket(servidor, puerto);

ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
MensajeDameFichero mensaje = new MensajeDameFichero();
mensaje.nombreFichero = fichero;
oos.writeObject(mensaje);

ByteArrayOutputStream bytes = new ByteArrayOutputStream();
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());

MensajeTomaFichero mensajeRecibido;
Object mensajeAux;

do
{
mensajeAux = ois.readObject();
if (mensajeAux instanceof MensajeTomaFichero)
{
mensajeRecibido = (MensajeTomaFichero) mensajeAux;
System.out.print(new String(mensajeRecibido.contenidoFichero, 0,mensajeRecibido.bytesValidos));//EL ARCHIVO_COPIA
bytes.write(mensajeRecibido.contenidoFichero, 0,mensajeRecibido.bytesValidos);
} else
{
System.err.println("Mensaje no esperado "+ mensajeAux.getClass().getName());
break;
}
} while (!mensajeRecibido.ultimoMensaje);

losBytes = bytes.toByteArray();

// Se cierra socket y fichero
ois.close();
socket.close();

} catch (Exception e)
{
e.printStackTrace();
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar