URLDataSource (Java Platform SE 8 )
Keywords: javax.activation.URLDataSource class
Date: 2026-04-17

javax.activation

## Class URLDataSource

- java.lang.Object
- - javax.activation.URLDataSource

- All Implemented Interfaces:
    DataSource

      public class URLDataSource
      extends Object
      implements DataSource

  The URLDataSource class provides an object that wraps a `URL` object in a DataSource interface. URLDataSource simplifies the handling of data described by URLs within the JavaBeans Activation Framework because this class can be used to create new DataHandlers. NOTE: The DataHandler object creates a URLDataSource internally, when it is constructed with a URL.
  Since:
    1.6
  See Also:
    `DataSource`, `DataHandler`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `URLDataSource(URL url)` URLDataSource constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getContentType()` Returns the value of the URL content-type header field.
    `InputStream` | `getInputStream()` The getInputStream method from the URL.
    `String` | `getName()` Calls the `getFile` method on the URL used to instantiate the object.
    `OutputStream` | `getOutputStream()` The getOutputStream method from the URL.
    `URL` | `getURL()` Return the URL used to create this DataSource.

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

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

- - ### Constructor Detail

    - #### URLDataSource

          public URLDataSource(URL url)

      URLDataSource constructor. The URLDataSource class will not open a connection to the URL until a method requiring it to do so is called.
      Parameters:
        `url` - The URL to be encapsulated in this object.

  - ### Method Detail

    - #### getContentType

          public String getContentType()

      Returns the value of the URL content-type header field. It calls the URL's `URLConnection.getContentType` method after retrieving a URLConnection object. Note: this method attempts to call the `openConnection` method on the URL. If this method fails, or if a content type is not returned from the URLConnection, getContentType returns "application/octet-stream" as the content type.
      Specified by:
        `getContentType` in interface `DataSource`
      Returns:
        the content type.

    - #### getName

          public String getName()

      Calls the `getFile` method on the URL used to instantiate the object.
      Specified by:
        `getName` in interface `DataSource`
      Returns:
        the result of calling the URL's getFile method.

    - #### getInputStream

          public InputStream getInputStream()
                                     throws IOException

      The getInputStream method from the URL. Calls the `openStream` method on the URL.
      Specified by:
        `getInputStream` in interface `DataSource`
      Returns:
        the InputStream.
      Throws:
        `IOException`

    - #### getOutputStream

          public OutputStream getOutputStream()
                                       throws IOException

      The getOutputStream method from the URL. First an attempt is made to get the URLConnection object for the URL. If that succeeds, the getOutputStream method on the URLConnection is returned.
      Specified by:
        `getOutputStream` in interface `DataSource`
      Returns:
        the OutputStream.
      Throws:
        `IOException`

    - #### getURL

          public URL getURL()

      Return the URL used to create this DataSource.
      Returns:
        The URL.

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.