Je veux sérialiser une grande structure d'objet pour la stocker dans une base de données sql.Comment obtenir des données blockwise à partir d'un flux de sortie dans Java?
Object tree = getTree();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(tree);
String objectString = Base64.getEncoder().encodeToString(baos.toByteArray());
Le problème est que le tableau d'octets générée par baos.toByteArray()
est grande. Il lance java.lang.OutOfMemoryError
et il est trop grand pour le transférer à la base de données à la fois. Je suis à la recherche d'une option pour obtenir le bloc de byte généré par bloc à partir de outputstream pour le faire fonctionner dans une boucle étape par étape.