J'ai un BitSet et je veux l'écrire dans un fichier - Je suis tombé sur une solution pour utiliser un ObjectOutputStream en utilisant la méthode writeObject.écrire un BitSet dans un fichier en Java
Je regardais les ObjectOutputStream dans l'API java et vu que vous pouvez écrire d'autres choses (octet, int, court etc)
j'ai essayé de vérifier la classe alors j'ai essayé d'écrire un octet dans un fichier en utilisant le code suivant mais le résultat me donne un fichier avec 7 octets au lieu de 1 octet
ma question est quels sont les 6 premiers octets dans le fichier? pourquoi sont-ils là? Ma question est pertinente pour un BitSet parce que je ne veux pas commencer à écrire beaucoup de données dans un fichier et réaliser que j'ai des octets aléatoires insérés dans le fichier sans savoir ce qu'ils sont.
est ici le code:
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();
Merci pour toute aide
Avner
donc si je vous comprends bien - chaque fois que j'écris quelque chose en utilisant ObjectOutputStream je reçois des frais généraux sérieux pour chaque écriture. par exemple si j'écris un int, un court, un octet et puis une chaîne Je reçois 4 ensembles de données supplémentaires pour chaque article que j'écris? – Avner
Non. Seule la méthode writeObject() ajoute l'en-tête de type. La méthode writeUTF() ajoute un préfixe de longueur de 2 octets. Les méthodes writeXX() primitives n'ajoutent pas de surcharge. Lisez le document API pour plus de détails. –
Notez également que les informations de type sont par objet. Pour un objet qui consiste essentiellement en un tableau primitif (tel que BitSet), le surcoût est constant, quelle que soit la taille du tableau. –