Module java.activation
Package javax.activation

## Interface DataSource

- All Known Implementing Classes:
    `FileDataSource`, `URLDataSource`

      public interface DataSource

  The DataSource interface provides the JavaBeans Activation Framework with an abstraction of an arbitrary collection of data. It provides a type for that data as well as access to it in the form of `InputStreams` and `OutputStreams` where appropriate.
  Since:
    1.6

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `String` | `getContentType​()` | This method returns the MIME type of the data in the form of a string.
    `InputStream` | `getInputStream​()` | This method returns an `InputStream` representing the data and throws the appropriate exception if it can not do so.
    `String` | `getName​()` | Return the name of this object where the name of the object is dependant on the nature of the underlying objects.
    `OutputStream` | `getOutputStream​()` | This method returns an `OutputStream` where the data can be written and throws the appropriate exception if it can not do so.

- - ### Method Detail

    - #### getInputStream

          InputStream getInputStream​()
                              throws IOException

      This method returns an `InputStream` representing the data and throws the appropriate exception if it can not do so. Note that a new `InputStream` object must be returned each time this method is called, and the stream must be positioned at the beginning of the data.
      Returns:
        an InputStream
      Throws:
        `IOException` - for failures creating the InputStream

    - #### getOutputStream

          OutputStream getOutputStream​()
                                throws IOException

      This method returns an `OutputStream` where the data can be written and throws the appropriate exception if it can not do so. Note that a new `OutputStream` object must be returned each time this method is called, and the stream must be positioned at the location the data is to be written.
      Returns:
        an OutputStream
      Throws:
        `IOException` - for failures creating the OutputStream

    - #### getContentType

          String getContentType​()

      This method returns the MIME type of the data in the form of a string. It should always return a valid type. It is suggested that getContentType return "application/octet-stream" if the DataSource implementation can not determine the data type.
      Returns:
        the MIME Type

    - #### getName

          String getName​()

      Return the name of this object where the name of the object is dependant on the nature of the underlying objects. DataSources encapsulating files may choose to return the filename of the object. (Typically this would be the last component of the filename, not an entire pathname.)
      Returns:
        the name of the object.