public interface

Resource

implements InputStreamSource
org.springframework.core.io.Resource
Known Indirect Subclasses

Class Overview

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.

Summary

Public Methods
abstract long contentLength()
Determine the content length for this resource.
abstract Resource createRelative(String relativePath)
Create a resource relative to this resource.
abstract boolean exists()
Return whether this resource actually exists in physical form.
abstract String getDescription()
Return a description for this resource, to be used for error output when working with the resource.
abstract File getFile()
Return a File handle for this resource.
abstract String getFilename()
Return a filename for this resource, i.e.
abstract URI getURI()
Return a URI handle for this resource.
abstract URL getURL()
Return a URL handle for this resource.
abstract boolean isOpen()
Return whether this resource represents a handle with an open stream.
abstract boolean isReadable()
Return whether the contents of this resource can be read, e.g.
abstract long lastModified()
Determine the last-modified timestamp for this resource.
[Expand]
Inherited Methods
From interface org.springframework.core.io.InputStreamSource

Public Methods

public abstract long contentLength ()

Also: SpringCore

Determine the content length for this resource.

Throws
IOException if the resource cannot be resolved (in the file system or as some other known physical resource type)

public abstract Resource createRelative (String relativePath)

Also: SpringCore

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
IOException if the relative resource cannot be determined

public abstract boolean exists ()

Also: SpringCore

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.

public abstract String getDescription ()

Also: SpringCore

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

public abstract File getFile ()

Also: SpringCore

Return a File handle for this resource.

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

public abstract String getFilename ()

Also: SpringCore

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

public abstract URI getURI ()

Also: SpringCore

Return a URI handle for this resource.

Throws
IOException if the resource cannot be resolved as URI, i.e. if the resource is not available as descriptor

public abstract URL getURL ()

Also: SpringCore

Return a URL handle for this resource.

Throws
IOException if the resource cannot be resolved as URL, i.e. if the resource is not available as descriptor

public abstract boolean isOpen ()

Also: SpringCore

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.

public abstract boolean isReadable ()

Also: SpringCore

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.

public abstract long lastModified ()

Also: SpringCore

Determine the last-modified timestamp for this resource.

Throws
IOException if the resource cannot be resolved (in the file system or as some other known physical resource type)