Class PathResource
- All Implemented Interfaces:
- InputStreamSource,- Resource,- WritableResource
Resource implementation for Path handles,
 performing all operations and transformations via the Path API.
 Supports resolution as a File and also as a URL.
 Implements the extended WritableResource interface.
 Note: As of 5.1, Path support is also available
 in FileSystemResource,
 applying Spring's standard String-based path transformations but
 performing all operations via the Files API.
 This PathResource is effectively a pure java.nio.path.Path
 based alternative with different createRelative behavior.
- Since:
- 4.0
- Author:
- Philippe Marschall, Juergen Hoeller
- See Also:
- 
Constructor SummaryConstructorsConstructorDescriptionPathResource(String path) Create a newPathResourcefrom a path string.PathResource(URI uri) Create a newPathResourcefrom aURI.PathResource(Path path) Create a newPathResourcefrom aPathhandle.
- 
Method SummaryModifier and TypeMethodDescriptionlongThis implementation returns the underlying file's length.createRelative(String relativePath) This implementation creates aPathResource, applying the given path relative to the path of the underlying file of this resource descriptor.booleanThis implementation compares the underlyingPathreferences.booleanexists()This implementation returns whether the underlying file exists.byte[]Return the contents of this resource as a byte array.getContentAsString(Charset charset) Return 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()This implementation returns the underlyingFilereference.This implementation returns the name of the file.This implementation opens anInputStreamfor the underlying file.This implementation opens anOutputStreamfor the underlying file.final StringgetPath()Return the file path for this resource.getURI()This implementation returns aURIfor the underlying file.getURL()This implementation returns aURLfor the underlying file.inthashCode()This implementation returns the hash code of the underlyingPathreference.booleanisFile()This implementation always indicates a file.booleanThis implementation checks whether the underlying file is marked as readable (and corresponds to an actual file with content, not to a directory).booleanThis implementation checks whether the underlying file is marked as writable (and corresponds to an actual file with content, not to a directory).longThis implementation returns the underlying file's timestamp.This implementation opens aReadableByteChannelfor the underlying file.This implementation opens aWritableByteChannelfor the underlying file.Methods inherited from class org.springframework.core.io.AbstractResourcegetFileForLastModifiedCheck, isOpen, toString
- 
Constructor Details- 
PathResourceCreate a newPathResourcefrom aPathhandle.Note: Unlike FileSystemResource, when building relative resources viacreateRelative(java.lang.String), the relative path will be built underneath the given root: e.g. Paths.get("C:/dir1/"), relative path "dir2" → "C:/dir1/dir2"!- Parameters:
- path- a Path handle
 
- 
PathResourceCreate a newPathResourcefrom a path string.Note: Unlike FileSystemResource, when building relative resources viacreateRelative(java.lang.String), the relative path will be built underneath the given root: e.g. Paths.get("C:/dir1/"), relative path "dir2" → "C:/dir1/dir2"!- Parameters:
- path- a path
- See Also:
 
- 
PathResourceCreate a newPathResourcefrom aURI.Note: Unlike FileSystemResource, when building relative resources viacreateRelative(java.lang.String), the relative path will be built underneath the given root: e.g. Paths.get("C:/dir1/"), relative path "dir2" → "C:/dir1/dir2"!- Parameters:
- uri- a path URI
- See Also:
 
 
- 
- 
Method Details- 
getPathReturn the file path for this resource.
- 
existspublic boolean exists()This implementation returns whether the underlying file exists.- Specified by:
- existsin interface- Resource
- Overrides:
- existsin class- AbstractResource
- See Also:
 
- 
isReadablepublic boolean isReadable()This implementation checks whether the underlying file is marked as readable (and corresponds to an actual file with content, not to a directory).- Specified by:
- isReadablein interface- Resource
- Overrides:
- isReadablein class- AbstractResource
- See Also:
 
- 
getInputStreamThis implementation opens anInputStreamfor the underlying file.- Specified by:
- getInputStreamin interface- InputStreamSource
- Returns:
- the input stream for the underlying resource (must not be null)
- Throws:
- FileNotFoundException- if the underlying resource does not exist
- IOException- if the content stream could not be opened
- See Also:
 
- 
getContentAsByteArrayDescription copied from interface:ResourceReturn the contents of this resource as a byte array.- Specified by:
- getContentAsByteArrayin interface- Resource
- 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
 
- 
getContentAsStringDescription copied from interface:ResourceReturn the contents of this resource as a string, using the specified charset.- Specified by:
- getContentAsStringin interface- Resource
- 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
 
- 
isWritablepublic boolean isWritable()This implementation checks whether the underlying file is marked as writable (and corresponds to an actual file with content, not to a directory).- Specified by:
- isWritablein interface- WritableResource
- See Also:
 
- 
getOutputStreamThis implementation opens anOutputStreamfor the underlying file.- Specified by:
- getOutputStreamin interface- WritableResource
- Throws:
- IOException- if the stream could not be opened
- See Also:
 
- 
getURLThis implementation returns aURLfor the underlying file.- Specified by:
- getURLin interface- Resource
- Overrides:
- getURLin class- AbstractResource
- Throws:
- IOException- if the resource cannot be resolved as URL, i.e. if the resource is not available as a descriptor
- See Also:
 
- 
getURIThis implementation returns aURIfor the underlying file.- Specified by:
- getURIin interface- Resource
- Overrides:
- getURIin class- AbstractResource
- Throws:
- IOException- if the resource cannot be resolved as URI, i.e. if the resource is not available as a descriptor
- See Also:
 
- 
isFilepublic boolean isFile()This implementation always indicates a file.- Specified by:
- isFilein interface- Resource
- Overrides:
- isFilein class- AbstractResource
- See Also:
 
- 
getFileThis implementation returns the underlyingFilereference.- Specified by:
- getFilein interface- Resource
- Overrides:
- getFilein class- AbstractResource
- 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:
 
- 
readableChannelThis implementation opens aReadableByteChannelfor the underlying file.- Specified by:
- readableChannelin interface- Resource
- Overrides:
- readableChannelin class- AbstractResource
- 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
- See Also:
 
- 
writableChannelThis implementation opens aWritableByteChannelfor the underlying file.- Specified by:
- writableChannelin interface- WritableResource
- 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
- See Also:
 
- 
contentLengthThis implementation returns the underlying file's length.- Specified by:
- contentLengthin interface- Resource
- Overrides:
- contentLengthin class- AbstractResource
- Throws:
- IOException- if the resource cannot be resolved (in the file system or as some other known physical resource type)
- See Also:
 
- 
lastModifiedThis implementation returns the underlying file's timestamp.- Specified by:
- lastModifiedin interface- Resource
- Overrides:
- lastModifiedin class- AbstractResource
- Throws:
- IOException- if the resource cannot be resolved (in the file system or as some other known physical resource type)
- See Also:
 
- 
createRelativeThis implementation creates aPathResource, applying the given path relative to the path of the underlying file of this resource descriptor.- Specified by:
- createRelativein interface- Resource
- Overrides:
- createRelativein class- AbstractResource
- Parameters:
- relativePath- the relative path (relative to this resource)
- Returns:
- the resource handle for the relative resource
- See Also:
 
- 
getFilenameThis implementation returns the name of the file.- Specified by:
- getFilenamein interface- Resource
- Overrides:
- getFilenamein class- AbstractResource
- See Also:
 
- 
getDescriptionDescription copied from interface:ResourceReturn 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.- Specified by:
- getDescriptionin interface- Resource
- See Also:
 
- 
equalsThis implementation compares the underlyingPathreferences.- Overrides:
- equalsin class- AbstractResource
- See Also:
 
- 
hashCodepublic int hashCode()This implementation returns the hash code of the underlyingPathreference.- Overrides:
- hashCodein class- AbstractResource
- See Also:
 
 
-