org.springframework.http.converter

## Class ByteArrayHttpMessageConverter

- java.lang.Object
- - org.springframework.http.converter.AbstractHttpMessageConverter<byte[]>
  - - org.springframework.http.converter.ByteArrayHttpMessageConverter

All Implemented Interfaces:
  HttpMessageConverter<byte[]>

    public class ByteArrayHttpMessageConverter
    extends AbstractHttpMessageConverter<byte[]>

Implementation of `HttpMessageConverter` that can read and write byte arrays.

By default, this converter supports all media types (`&#42;&#47;&#42;`), and writes with a `Content-Type` of `application/octet-stream`. This can be overridden by setting the `supportedMediaTypes` property.

Since:
  3.0
Author:
  Arjen Poutsma

### Field Summary

### Fields inherited from class org.springframework.http.converter.AbstractHttpMessageConverter

`logger`

### Constructor Summary

Constructors
Constructor and Description
`ByteArrayHttpMessageConverter()` Creates a new instance of the `ByteArrayHttpMessageConverter`.

### Method Summary

Methods
`protected Long` `getContentLength(byte[] bytes, MediaType contentType)` Returns the content length for the given type.
`byte[]` `readInternal(Class clazz, HttpInputMessage inputMessage)` Abstract template method that reads the actual object.
`boolean` `supports(Class<?> clazz)` Indicates whether the given class is supported by this converter.
`protected void` `writeInternal(byte[] bytes, HttpOutputMessage outputMessage)` Abstract template method that writes the actual body.

### Methods inherited from class org.springframework.http.converter.AbstractHttpMessageConverter

`canRead, canRead, canWrite, canWrite, getDefaultContentType, getSupportedMediaTypes, read, setSupportedMediaTypes, write`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ByteArrayHttpMessageConverter

    public ByteArrayHttpMessageConverter()

Creates a new instance of the `ByteArrayHttpMessageConverter`.

### Method Detail

#### supports

    public boolean supports(Class<?> clazz)

Description copied from class: `AbstractHttpMessageConverter`
Indicates whether the given class is supported by this converter.

Specified by:
  `supports` in class `AbstractHttpMessageConverter<byte[]>`
Parameters:
  `clazz` - the class to test for support
Returns:
  `true` if supported; `false` otherwise

#### readInternal

    public byte[] readInternal(Class clazz,
                      HttpInputMessage inputMessage)
                        throws IOException

Description copied from class: `AbstractHttpMessageConverter`
Abstract template method that reads the actual object. Invoked from `AbstractHttpMessageConverter.read(java.lang.Class<? extends T>, org.springframework.http.HttpInputMessage)`.

Specified by:
  `readInternal` in class `AbstractHttpMessageConverter<byte[]>`
Parameters:
  `clazz` - the type of object to return
  `inputMessage` - the HTTP input message to read from
Returns:
  the converted object
Throws:
  `IOException` - in case of I/O errors

#### getContentLength

    protected Long getContentLength(byte[] bytes,
                        MediaType contentType)

Description copied from class: `AbstractHttpMessageConverter`
Returns the content length for the given type.

By default, this returns `null`, meaning that the content length is unknown. Can be overridden in subclasses.

Overrides:
  `getContentLength` in class `AbstractHttpMessageConverter<byte[]>`
Parameters:
  `bytes` - the type to return the content length for
Returns:
  the content length, or `null` if not known

#### writeInternal

    protected void writeInternal(byte[] bytes,
                     HttpOutputMessage outputMessage)
                          throws IOException

Description copied from class: `AbstractHttpMessageConverter`
Abstract template method that writes the actual body. Invoked from `AbstractHttpMessageConverter.write(T, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage)`.

Specified by:
  `writeInternal` in class `AbstractHttpMessageConverter<byte[]>`
Parameters:
  `bytes` - the object to write to the output message
  `outputMessage` - the message to write to
Throws:
  `IOException` - in case of I/O errors