DataContentHandler (Java Platform SE 8 )
Keywords: javax.activation.DataContentHandler interface
Date: 2026-03-16

javax.activation

## Interface DataContentHandler

-     public interface DataContentHandler

  The DataContentHandler interface is implemented by objects that can be used to extend the capabilities of the DataHandler's implementation of the Transferable interface. Through `DataContentHandlers` the framework can be extended to convert streams in to objects, and to write objects to streams.

  Applications don't generally call the methods in DataContentHandlers directly. Instead, an application calls the equivalent methods in DataHandler. The DataHandler will attempt to find an appropriate DataContentHandler that corresponds to its MIME type using the current DataContentHandlerFactory. The DataHandler then calls through to the methods in the DataContentHandler.

  Since:
    1.6

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `getContent(DataSource ds)` Return an object representing the data in its most preferred form.
    `Object` | `getTransferData(DataFlavor df, DataSource ds)` Returns an object which represents the data to be transferred.
    `DataFlavor[]` | `getTransferDataFlavors()` Returns an array of DataFlavor objects indicating the flavors the data can be provided in.
    `void` | `writeTo(Object obj, String mimeType, OutputStream os)` Convert the object to a byte stream of the specified MIME type and write it to the output stream.

- - ### Method Detail

    - #### getTransferDataFlavors

          DataFlavor[] getTransferDataFlavors()

      Returns an array of DataFlavor objects indicating the flavors the data can be provided in. The array should be ordered according to preference for providing the data (from most richly descriptive to least descriptive).
      Returns:
        The DataFlavors.

    - #### getTransferData

          Object getTransferData(DataFlavor df,
                                 DataSource ds)
                          throws UnsupportedFlavorException,
                                 IOException

      Returns an object which represents the data to be transferred. The class of the object returned is defined by the representation class of the flavor.
      Parameters:
        `df` - The DataFlavor representing the requested type.
        `ds` - The DataSource representing the data to be converted.
      Returns:
        The constructed Object.
      Throws:
        `UnsupportedFlavorException` - if the handler doesn't support the requested flavor
        `IOException` - if the data can't be accessed

    - #### getContent

          Object getContent(DataSource ds)
                     throws IOException

      Return an object representing the data in its most preferred form. Generally this will be the form described by the first DataFlavor returned by the `getTransferDataFlavors` method.
      Parameters:
        `ds` - The DataSource representing the data to be converted.
      Returns:
        The constructed Object.
      Throws:
        `IOException` - if the data can't be accessed

    - #### writeTo

          void writeTo(Object obj,
                       String mimeType,
                       OutputStream os)
                throws IOException

      Convert the object to a byte stream of the specified MIME type and write it to the output stream.
      Parameters:
        `obj` - The object to be converted.
        `mimeType` - The requested MIME type of the resulting byte stream.
        `os` - The output stream into which to write the converted byte stream.
      Throws:
        `IOException` - errors writing to the stream

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.