Top Description Methods
org.springframework.core.io

public Interface Resource

extends InputStreamSource
Known Direct Subinterfaces
org.springframework.core.io.WritableResource, org.springframework.core.io.ContextResource
Known Direct Implementers
org.springframework.core.io.AbstractResource
Imports
java.io.File, .IOException, .InputStream, .InputStreamReader, java.net.URI, .URL, java.nio.channels.Channels, .ReadableByteChannel, java.nio.charset.Charset, org.springframework.lang.Nullable, org.springframework.util.FileCopyUtils

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.

Authors
Juergen Hoeller, Arjen Poutsma
Since
28.12.2003
See Also
getInputStream(), getURL(), getURI(), getFile(), WritableResource, ContextResource, UrlResource, FileUrlResource, FileSystemResource, ClassPathResource, ByteArrayResource, InputStreamResource

Method Summary

Modifier and TypeMethod and Description
public long
contentLength()

Determine the content length for this resource.

public Resource

Returns:

the resource handle for the relative resource
createRelative
(String
the relative path (relative to this resource)
relativePath
)

Create a resource relative to this resource.

public boolean
exists()

Determine whether this resource actually exists in physical form.

public default byte[]

Returns:

the contents of this resource as byte array
getContentAsByteArray
()

Return the contents of this resource as a byte array.

public default String

Returns:

the contents of this resource as a String
getContentAsString
(Charset
the charset to use for decoding
charset
)

Return the contents of this resource as a string, using the specified charset.

public String
getDescription()

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

public File
getFile()

Return a File handle for this resource.

public String
getFilename()

Determine the filename for this resource — typically the last part of the path — for example, "myfile.txt".

public URI
getURI()

Return a URI handle for this resource.

public URL
getURL()

Return a URL handle for this resource.

public default boolean
isFile()

Determine whether this resource represents a file in a file system.

public default boolean
isOpen()

Indicate whether this resource represents a handle with an open stream.

public default boolean
isReadable()

Indicate whether non-empty contents of this resource can be read via getInputStream().

public long
lastModified()

Determine the last-modified timestamp for this resource.

public default ReadableByteChannel

Returns:

the byte channel for the underlying resource (must not be null)
readableChannel
()

Return a ReadableByteChannel.

Inherited from org.springframework.core.io.InputStreamSource:
getInputStream

Method Detail

contentLengthback to summary
public long contentLength() throws IOException

Determine the content length for this resource.

Exceptions
IOException:
if the resource cannot be resolved (in the file system or as some other known physical resource type)
createRelativeback to summary
public Resource createRelative(String relativePath) throws IOException

Create a resource relative to this resource.

Parameters
relativePath:String

the relative path (relative to this resource)

Returns:Resource

the resource handle for the relative resource

Exceptions
IOException:
if the relative resource cannot be determined
existsback to summary
public boolean exists()

Determine 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.

getContentAsByteArrayback to summary
public default byte[] getContentAsByteArray() throws IOException

Return the contents of this resource as a byte array.

Returns:byte[]

the contents of this resource as byte array

Exceptions
IOException:
in case of general resolution/reading failures
FileNotFoundException:
if the resource cannot be resolved as absolute file path, i.e. if the resource is not available in a file system
Since
6.0.5
getContentAsStringback to summary
public default String getContentAsString(Charset charset) throws IOException

Return the contents of this resource as a string, using the specified charset.

Parameters
charset:Charset

the charset to use for decoding

Returns:String

the contents of this resource as a String

Exceptions
IOException:
in case of general resolution/reading failures
FileNotFoundException:
if the resource cannot be resolved as absolute file path, i.e. if the resource is not available in a file system
Since
6.0.5
getDescriptionback to summary
public 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()
getFileback to summary
public File getFile() throws IOException

Return a File handle for this resource.

Exceptions
IOException:
in case of general resolution/reading failures
FileNotFoundException:
if the resource cannot be resolved as absolute file path, i.e. if the resource is not available in a file system
See Also
getInputStream()
getFilenameback to summary
public String getFilename()

Determine the filename for this resource — typically the last part of the path — for example, "myfile.txt".

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

Implementations are encouraged to return the filename unencoded.

Annotations
@Nullable
getURIback to summary
public URI getURI() throws IOException

Return a URI handle for this resource.

Exceptions
IOException:
if the resource cannot be resolved as URI, i.e. if the resource is not available as a descriptor
Since
2.5
getURLback to summary
public URL getURL() throws IOException

Return a URL handle for this resource.

Exceptions
IOException:
if the resource cannot be resolved as URL, i.e. if the resource is not available as a descriptor
isFileback to summary
public default boolean isFile()

Determine whether this resource represents a file in a file system.

A value of true strongly suggests (but does not guarantee) that a getFile() call will succeed.

This is conservatively false by default.

Since
5.0
See Also
getFile()
isOpenback to summary
public default boolean isOpen()

Indicate 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.

isReadableback to summary
public default boolean isReadable()

Indicate whether non-empty contents of this resource can be read via getInputStream().

Will be true for typical resource descriptors that exist since it strictly implies exists() semantics as of 5.1. 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(), exists()
lastModifiedback to summary
public long lastModified() throws IOException

Determine the last-modified timestamp for this resource.

Exceptions
IOException:
if the resource cannot be resolved (in the file system or as some other known physical resource type)
readableChannelback to summary
public default ReadableByteChannel readableChannel() throws IOException

Return a ReadableByteChannel.

It is expected that each call creates a fresh channel.

The default implementation returns Channels#newChannel(InputStream) with the result of getInputStream().

Returns:ReadableByteChannel

the byte channel for the underlying resource (must not be null)

Exceptions
IOException:
if the content channel could not be opened
FileNotFoundException:
if the underlying resource doesn't exist
Since
5.0
See Also
getInputStream()