다음은 첨부 파일의 내용을 읽고 바이트 배열 내에 저장할 수있는 방법입니다. 또는 OutputStream
에 직접 쓸 수 있으며 byte[]
으로 전환하지 않아도됩니다.
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
당신이 효율적으로 또는 첨부 파일이 메모리에 적합하지 않는 경우에, 당신은 블롭의 출력 스트림에 직접 쓸 수 있습니다 더 많은 메모리를하고 싶다면. ByteArrayOutputStream
을 OutputStream outputStream = blob.setBinaryStream(1);
으로 바꾸십시오. attachemt의 내용을 바이트 배열로 읽으시겠습니까, 아니면 직렬화 하시겠습니까? 귀하의 질문을 명확히하시기 바랍니다; 당신이 무엇을 묻고 있는지 명확하지 않습니다. –
마지막으로, 데이터베이스에 BLOB로 저장해야합니다. –