So können Sie den Inhalt des Anhangs lesen und in einem Bytearray speichern. Alternativ können Sie direkt in eine OutputStream
schreiben und die Konvertierung zu byte[]
überspringen.
DataHandler dataHandler = attachment.getDataHandler();
final byte[] data;
try (InputStream inputStream = dataHandler.getInputStream()) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
final byte[] buffer = new byte[4096];
for (int read = inputStream.read(buffer); read > 0; read = inputStream.read(buffer)) {
outputStream.write(buffer, 0, read);
}
data = outputStream.toByteArray();
}
//todo write data to BLOB
Wenn Sie mehr Speicher effizient sein, oder wenn die Anlage nicht in den Speicher passt, können Sie direkt mit dem Ausgangsstrom des Blobs schreiben. Ersetzen Sie einfach die ByteArrayOutputStream
durch OutputStream outputStream = blob.setBinaryStream(1);
Möchten Sie den Inhalt des Attachemt zu einem Byte-Array lesen, oder Sie möchten es serialisieren? Bitte klären Sie Ihre Frage, weil es unklar ist, was Sie fragen –
Schließlich muss ich es als BLOB in der Datenbank speichern. –