Interface Resource
- All Superinterfaces:
- InputStreamSource
- All Known Subinterfaces:
- ContextResource,- HttpResource,- HttpResource,- WritableResource
- All Known Implementing Classes:
- AbstractFileResolvingResource,- AbstractResource,- ByteArrayResource,- ClassPathResource,- DefaultResourceLoader.ClassPathContextResource,- DescriptiveResource,- FileSystemResource,- FileUrlResource,- InputStreamResource,- PathResource,- ServletContextResource,- TransformedResource,- TransformedResource,- UrlResource,- VfsResource
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, Arjen Poutsma
- See Also:
- 
Method SummaryModifier and TypeMethodDescriptionlongDetermine the content length for this resource.createRelative(String relativePath) Create a resource relative to this resource.booleanexists()Determine whether this resource actually exists in physical form.default byte[]Return the contents of this resource as a byte array.default StringgetContentAsString(Charset charset) Returns the contents of this resource as a string, using the specified charset.Return a description for this resource, to be used for error output when working with the resource.getFile()Return a File handle for this resource.Determine the filename for this resource — typically the last part of the path — for example,"myfile.txt".getURI()Return a URI handle for this resource.getURL()Return a URL handle for this resource.default booleanisFile()Determine whether this resource represents a file in a file system.default booleanisOpen()Indicate whether this resource represents a handle with an open stream.default booleanIndicate whether non-empty contents of this resource can be read viaInputStreamSource.getInputStream().longDetermine the last-modified timestamp for this resource.default ReadableByteChannelReturn aReadableByteChannel.Methods inherited from interface org.springframework.core.io.InputStreamSourcegetInputStream
- 
Method Details- 
existsboolean exists()Determine whether this resource actually exists in physical form.This method performs a definitive existence check, whereas the existence of a Resourcehandle only guarantees a valid descriptor handle.
- 
isReadabledefault boolean isReadable()Indicate whether non-empty contents of this resource can be read viaInputStreamSource.getInputStream().Will be truefor typical resource descriptors that exist since it strictly impliesexists()semantics as of 5.1. Note that actual content reading may still fail when attempted. However, a value offalseis a definitive indication that the resource content cannot be read.- See Also:
 
- 
isOpendefault boolean isOpen()Indicate whether this resource represents a handle with an open stream. Iftrue, the InputStream cannot be read multiple times, and must be read and closed to avoid resource leaks.Will be falsefor typical resource descriptors.
- 
isFiledefault boolean isFile()Determine whether this resource represents a file in a file system.A value of truestrongly suggests (but does not guarantee) that agetFile()call will succeed.This is conservatively falseby default.- Since:
- 5.0
- See Also:
 
- 
getURLReturn 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 a descriptor
 
- 
getURIReturn 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 a descriptor
- Since:
- 2.5
 
- 
getFileReturn a File handle for this resource.- Throws:
- FileNotFoundException- if the resource cannot be resolved as absolute file path, i.e. if the resource is not available in a file system
- IOException- in case of general resolution/reading failures
- See Also:
 
- 
readableChannelReturn aReadableByteChannel.It is expected that each call creates a fresh channel. The default implementation returns Channels.newChannel(InputStream)with the result ofInputStreamSource.getInputStream().- Returns:
- the byte channel for the underlying resource (must not be null)
- Throws:
- FileNotFoundException- if the underlying resource doesn't exist
- IOException- if the content channel could not be opened
- Since:
- 5.0
- See Also:
 
- 
getContentAsByteArrayReturn the contents of this resource as a byte array.- Returns:
- the contents of this resource as byte array
- Throws:
- FileNotFoundException- if the resource cannot be resolved as absolute file path, i.e. if the resource is not available in a file system
- IOException- in case of general resolution/reading failures
- Since:
- 6.0.5
 
- 
getContentAsStringReturns the contents of this resource as a string, using the specified charset.- Parameters:
- charset- the charset to use for decoding
- Returns:
- the contents of this resource as a String
- Throws:
- FileNotFoundException- if the resource cannot be resolved as absolute file path, i.e. if the resource is not available in a file system
- IOException- in case of general resolution/reading failures
- Since:
- 6.0.5
 
- 
contentLengthDetermine 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)
 
- 
lastModifiedDetermine 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)
 
- 
createRelativeCreate 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
 
- 
getFilenameDetermine the filename for this resource — typically the last part of the path — for example,"myfile.txt".Returns nullif this type of resource does not have a filename.Implementations are encouraged to return the filename unencoded. 
- 
getDescriptionString 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 toStringmethod.- See Also:
 
 
-