Tengo un BitSet y quiero escribirlo en un archivo. Encontré una solución para usar un ObjectOutputStream usando el método writeObject.escribiendo un BitSet en un archivo en java
Miré el ObjectOutputStream en la API de Java y vieron que se puede escribir otras cosas (byte, int, short, etc)
he tratado de revisar la clase así que traté de escribir un byte en un archivo utilizando el siguiente código pero el resultado me da un archivo con 7 bytes en lugar de 1 byte
mi pregunta es ¿cuáles son los primeros 6 bytes en el archivo? ¿Por qué están ellos ahí?
mi pregunta es relevante para un BitSet porque no quiero comenzar a escribir muchos datos en un archivo y me doy cuenta de que tengo bytes aleatorios insertados en el archivo sin saber cuáles son.
Aquí está el código:
byte[] bt = new byte[]{'A'};
File outFile = new File("testOut.txt");
FileOutputStream fos = new FileOutputStream(outFile);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.write(bt);
oos.close();
gracias por cualquier ayuda
Avner
así que si te entiendo correctamente, cada vez que escribo algo con ObjectOutputStream, tengo una sobrecarga importante por cada escritura. por ejemplo, si escribo un int, un short, un byte y luego una cadena obtengo 4 conjuntos de datos adicionales para cada artículo que escribo? – Avner
No. Solo el método writeObject() agrega el encabezado de tipo. El método writeUTF() agrega un prefijo de longitud de 2 bytes. Los métodos primitivos writeXX() no agregan ninguna sobrecarga. Lee el documento API para más detalles. –
También tenga en cuenta que la información de tipo es por Objeto. Para un objeto que consiste básicamente en una matriz primitiva (como BitSet), la sobrecarga es constante, sin importar qué tan grande sea la matriz. –