Chapter 6. Message delivery
6.1. Writing to a streamed large message
To write to a large message, use the BytesMessage.writeBytes() method. The following example reads bytes from a file and writes them to a message:
Example: Writing to a streamed large message
BytesMessage message = session.createBytesMessage();
File inputFile = new File(inputFilePath);
InputStream inputStream = new FileInputStream(inputFile);
int numRead;
byte[] buffer = new byte[1024];
while ((numRead = inputStream.read(buffer, 0, buffer.length)) != -1) {
message.writeBytes(buffer, 0, numRead);
}
6.2. Reading from a streamed large message
To read from a large message, use the BytesMessage.readBytes() method. The following example reads bytes from a message and writes them to a file:
Example: Reading from a streamed large message
BytesMessage message = (BytesMessage) consumer.receive();
File outputFile = new File(outputFilePath);
OutputStream outputStream = new FileOutputStream(outputFile);
int numRead;
byte buffer[] = new byte[1024];
for (int pos = 0; pos < message.getBodyLength(); pos += buffer.length) {
numRead = message.readBytes(buffer);
outputStream.write(buffer, 0, numRead);
}