Package javax.mail.util

## Class ByteArrayDataSource

- java.lang.Object
- - javax.mail.util.ByteArrayDataSource

All Implemented Interfaces:
  `javax.activation.DataSource`

    public class ByteArrayDataSource
    extends java.lang.Object
    implements javax.activation.DataSource

A DataSource backed by a byte array. The byte array may be passed in directly, or may be initialized from an InputStream or a String.

Since:
  JavaMail 1.4
Author:
  John Mani, Bill Shannon, Max Spivak

### Constructor Summary

Constructors
`ByteArrayDataSource​(byte[] data, java.lang.String type)` Create a ByteArrayDataSource with data from the specified byte array and with the specified MIME type.
`ByteArrayDataSource​(java.io.InputStream is, java.lang.String type)` Create a ByteArrayDataSource with data from the specified InputStream and with the specified MIME type.
`ByteArrayDataSource​(java.lang.String data, java.lang.String type)` Create a ByteArrayDataSource with data from the specified String and with the specified MIME type.

### Method Summary

All Methods Instance Methods Concrete Methods
`java.lang.String` `getContentType()` Get the MIME content type of the data.
`java.io.InputStream` `getInputStream()` Return an InputStream for the data.
`java.lang.String` `getName()` Get the name of the data.
`java.io.OutputStream` `getOutputStream()` Return an OutputStream for the data.
`void` `setName​(java.lang.String name)` Set the name of the data.

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

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

### Constructor Detail

#### ByteArrayDataSource

    public ByteArrayDataSource​(java.io.InputStream is,
                               java.lang.String type)
                        throws java.io.IOException

Create a ByteArrayDataSource with data from the specified InputStream and with the specified MIME type. The InputStream is read completely and the data is stored in a byte array.

Parameters:
  `is` - the InputStream
  `type` - the MIME type
Throws:
  `java.io.IOException` - errors reading the stream

#### ByteArrayDataSource

    public ByteArrayDataSource​(byte[] data,
                               java.lang.String type)

Create a ByteArrayDataSource with data from the specified byte array and with the specified MIME type.

Parameters:
  `data` - the data
  `type` - the MIME type

#### ByteArrayDataSource

    public ByteArrayDataSource​(java.lang.String data,
                               java.lang.String type)
                        throws java.io.IOException

Create a ByteArrayDataSource with data from the specified String and with the specified MIME type. The MIME type should include a `charset` parameter specifying the charset to be used for the string. If the parameter is not included, the default charset is used.

Parameters:
  `data` - the String
  `type` - the MIME type
Throws:
  `java.io.IOException` - errors reading the String

### Method Detail

#### getInputStream

    public java.io.InputStream getInputStream()
                                       throws java.io.IOException

Return an InputStream for the data. Note that a new stream is returned each time this method is called.

Specified by:
  `getInputStream` in interface `javax.activation.DataSource`
Returns:
  the InputStream
Throws:
  `java.io.IOException` - if no data has been set

#### getOutputStream

    public java.io.OutputStream getOutputStream()
                                         throws java.io.IOException

Return an OutputStream for the data. Writing the data is not supported; an `IOException` is always thrown.

Specified by:
  `getOutputStream` in interface `javax.activation.DataSource`
Throws:
  `java.io.IOException` - always

#### getContentType

    public java.lang.String getContentType()

Get the MIME content type of the data.

Specified by:
  `getContentType` in interface `javax.activation.DataSource`
Returns:
  the MIME type

#### getName

    public java.lang.String getName()

Get the name of the data. By default, an empty string ("") is returned.

Specified by:
  `getName` in interface `javax.activation.DataSource`
Returns:
  the name of this data

#### setName

    public void setName​(java.lang.String name)

Set the name of the data.

Parameters:
  `name` - the name of this data