Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.springframework.core.io
Interface Resource

All Superinterfaces:
  InputStreamSource

All Known Subinterfaces:
  ContextResource, WritableResource

All Known Implementing Classes:
  AbstractFileResolvingResource, AbstractResource, ByteArrayResource, ClassPathResource, DescriptiveResource, FileSystemResource, InputStreamResource, PortletContextResource, ServletContextResource, UrlResource, VfsResource

    public interface Resource

extends InputStreamSource

Interface for a resource descriptor that abstracts from the actual type of underlying resource, such as a file or class path resource.

An InputStream can be opened for every resource if it exists in physical form, but a URL or File handle can just be returned for certain resources. The actual behavior is implementation-specific.

Since:
  28.12.2003
Author:
  Juergen Hoeller
See Also:
  `getInputStream()`, `getURL()`, `getURI()`, `getFile()`, `WritableResource`, `ContextResource`, `FileSystemResource`, `ClassPathResource`, `UrlResource`, `ByteArrayResource`, `InputStreamResource`

Method Summary
`long` | `contentLength()` Determine the content length for this resource.
`Resource` | `createRelative(java.lang.String relativePath)` Create a resource relative to this resource.
`boolean` | `exists()` Return whether this resource actually exists in physical form.
`java.lang.String` | `getDescription()` Return a description for this resource, to be used for error output when working with the resource.
`java.io.File` | `getFile()` Return a File handle for this resource.
`java.lang.String` | `getFilename()` Determine a filename for this resource, i.e.
`java.io.InputStream` | `getInputStream()` Return an `InputStream`.
`java.net.URI` | `getURI()` Return a URI handle for this resource.
`java.net.URL` | `getURL()` Return a URL handle for this resource.
`boolean` | `isOpen()` Return whether this resource represents a handle with an open stream.
`boolean` | `isReadable()` Return whether the contents of this resource can be read, e.g.
`long` | `lastModified()` Determine the last-modified timestamp for this resource.

Method Detail

### exists

    boolean exists()

  Return whether this resource actually exists in physical form.

  This method performs a definitive existence check, whereas the existence of a `Resource` handle only guarantees a valid descriptor handle.

### isReadable

    boolean isReadable()

  Return whether the contents of this resource can be read, e.g. via `getInputStream()` or `getFile()`.

  Will be `true` for typical resource descriptors; note that actual content reading may still fail when attempted. However, a value of `false` is a definitive indication that the resource content cannot be read.

  See Also:
    `getInputStream()`

### isOpen

    boolean isOpen()

  Return whether this resource represents a handle with an open stream. If true, the InputStream cannot be read multiple times, and must be read and closed to avoid resource leaks.

  Will be `false` for typical resource descriptors.

### getURL

    java.net.URL getURL()
                        throws java.io.IOException

  Return a URL handle for this resource.

  Throws:
    `java.io.IOException` - if the resource cannot be resolved as URL, i.e. if the resource is not available as descriptor

### getURI

    java.net.URI getURI()
                        throws java.io.IOException

  Return a URI handle for this resource.

  Throws:
    `java.io.IOException` - if the resource cannot be resolved as URI, i.e. if the resource is not available as descriptor

### getFile

    java.io.File getFile()
                         throws java.io.IOException

  Return a File handle for this resource.

  Throws:
    `java.io.IOException` - if the resource cannot be resolved as absolute file path, i.e. if the resource is not available in a file system

### contentLength

    long contentLength()
                       throws java.io.IOException

  Determine the content length for this resource.

  Throws:
    `java.io.IOException` - if the resource cannot be resolved (in the file system or as some other known physical resource type)

### lastModified

    long lastModified()
                      throws java.io.IOException

  Determine the last-modified timestamp for this resource.

  Throws:
    `java.io.IOException` - if the resource cannot be resolved (in the file system or as some other known physical resource type)

### createRelative

    Resource createRelative(java.lang.String relativePath)
                            throws java.io.IOException

  Create a resource relative to this resource.

  Parameters:
    `relativePath` - the relative path (relative to this resource)
  Returns:
    the resource handle for the relative resource
  Throws:
    `java.io.IOException` - if the relative resource cannot be determined

### getFilename

    java.lang.String getFilename()

  Determine a filename for this resource, i.e. typically the last part of the path: for example, "myfile.txt".

  Returns `null` if this type of resource does not have a filename.

### getDescription

    java.lang.String getDescription()

  Return a description for this resource, to be used for error output when working with the resource.

  Implementations are also encouraged to return this value from their `toString` method.

  See Also:
    `Object.toString()`

### getInputStream

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

  Return an `InputStream`.

  It is expected that each call creates a fresh stream.

  This requirement is particularly important when you consider an API such as JavaMail, which needs to be able to read the stream multiple times when creating mail attachments. For such a use case, it is required that each `getInputStream()` call returns a fresh stream.

  Specified by:
    `getInputStream` in interface `InputStreamSource`
  Returns:
    the input stream for the underlying resource (must not be `null`).
  Throws:
    `java.io.IOException` - if the stream could not be opened
  See Also:
    `MimeMessageHelper.addAttachment(String, InputStreamSource)`

Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD