## org.springframework.core.io
Class UrlResource

    java.lang.Object
      org.springframework.core.io.AbstractResource
          org.springframework.core.io.AbstractFileResolvingResource
              org.springframework.core.io.UrlResource

All Implemented Interfaces:
  InputStreamSource, Resource

    public class UrlResource

extends AbstractFileResolvingResource

`Resource` implementation for `java.net.URL` locators. Obviously supports resolution as URL, and also as File in case of the "file:" protocol.

Since:
  28.12.2003
Author:
  Juergen Hoeller
See Also:
  `URL`

Constructor Summary
`UrlResource(String path)` Create a new UrlResource.
`UrlResource(URI uri)` Create a new UrlResource.
`UrlResource(URL url)` Create a new UrlResource.

Method Summary
`Resource` `createRelative(String relativePath)` This implementation creates a UrlResource, applying the given path relative to the path of the underlying URL of this resource descriptor.
`boolean` `equals(Object obj)` This implementation compares the underlying URL references.
`String` `getDescription()` This implementation returns a description that includes the URL.
`File` `getFile()` This implementation returns a File reference for the underlying URL/URI, provided that it refers to a file in the file system.
`String` `getFilename()` This implementation returns the name of the file that this URL refers to.
`InputStream` `getInputStream()` This implementation opens an InputStream for the given URL.
`URI` `getURI()` This implementation returns the underlying URI directly, if possible.
`URL` `getURL()` This implementation returns the underlying URL reference.
`int` `hashCode()` This implementation returns the hash code of the underlying URL reference.

Methods inherited from class org.springframework.core.io.AbstractFileResolvingResource
`contentLength, exists, getFile, getFileForLastModifiedCheck, isReadable, lastModified`

Methods inherited from class org.springframework.core.io.AbstractResource
`isOpen, toString`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### UrlResource

    public UrlResource(URL url)

  Create a new UrlResource.

  Parameters:
    `url` - a URL

### UrlResource

    public UrlResource(URI uri)
                throws MalformedURLException

  Create a new UrlResource.

  Parameters:
    `uri` - a URI
  Throws:
    `MalformedURLException` - if the given URL path is not valid

### UrlResource

    public UrlResource(String path)
                throws MalformedURLException

  Create a new UrlResource.

  Parameters:
    `path` - a URL path
  Throws:
    `MalformedURLException` - if the given URL path is not valid

Method Detail

### getInputStream

    public InputStream getInputStream()
                               throws IOException

  This implementation opens an InputStream for the given URL. It sets the "UseCaches" flag to `false`, mainly to avoid jar file locking on Windows.

  Throws:
    `IOException` - if the stream could not be opened
  See Also:
    `URL.openConnection()`, `URLConnection.setUseCaches(boolean)`, `URLConnection.getInputStream()`

### getURL

    public URL getURL()
               throws IOException

  This implementation returns the underlying URL reference.

  Specified by:
    `getURL` in interface `Resource`
  Overrides:
    `getURL` in class `AbstractResource`
  Throws:
    `IOException` - if the resource cannot be resolved as URL, i.e. if the resource is not available as descriptor

### getURI

    public URI getURI()
               throws IOException

  This implementation returns the underlying URI directly, if possible.

  Specified by:
    `getURI` in interface `Resource`
  Overrides:
    `getURI` in class `AbstractResource`
  Throws:
    `IOException` - if the resource cannot be resolved as URI, i.e. if the resource is not available as descriptor

### getFile

    public File getFile()
                 throws IOException

  This implementation returns a File reference for the underlying URL/URI, provided that it refers to a file in the file system.

  Specified by:
    `getFile` in interface `Resource`
  Overrides:
    `getFile` in class `AbstractFileResolvingResource`
  Throws:
    `IOException` - if the resource cannot be resolved as absolute file path, i.e. if the resource is not available in a file system
  See Also:
    `ResourceUtils.getFile(java.net.URL, String)`

### createRelative

    public Resource createRelative(String relativePath)
                            throws MalformedURLException

  This implementation creates a UrlResource, applying the given path relative to the path of the underlying URL of this resource descriptor.

  Specified by:
    `createRelative` in interface `Resource`
  Overrides:
    `createRelative` in class `AbstractResource`
  Parameters:
    `relativePath` - the relative path (relative to this resource)
  Returns:
    the resource handle for the relative resource
  Throws:
    `MalformedURLException`
  See Also:
    `URL.URL(java.net.URL, String)`

### getFilename

    public String getFilename()

  This implementation returns the name of the file that this URL refers to.

  Specified by:
    `getFilename` in interface `Resource`
  Overrides:
    `getFilename` in class `AbstractResource`
  See Also:
    `URL.getFile()`, `File.getName()`

### getDescription

    public String getDescription()

  This implementation returns a description that includes the URL.

  See Also:
    `Object.toString()`

### equals

    public boolean equals(Object obj)

  This implementation compares the underlying URL references.

  Overrides:
    `equals` in class `AbstractResource`
  See Also:
    `Resource.getDescription()`

### hashCode

    public int hashCode()

  This implementation returns the hash code of the underlying URL reference.

  Overrides:
    `hashCode` in class `AbstractResource`
  See Also:
    `Resource.getDescription()`