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 Summary
ConstructorsConstructorDescriptionPathResource(String path) Create a new PathResource from a Path handle.PathResource(URI uri) Create a new PathResource from a Path handle.PathResource(Path path) Create a new PathResource from a Path handle. -
Method Summary
Modifier and TypeMethodDescriptionlongThis implementation returns the underlying file's length.createRelative(String relativePath) This implementation creates a PathResource, applying the given path relative to the path of the underlying file of this resource descriptor.booleanThis implementation compares the underlying Path references.booleanexists()This implementation returns whether the underlying file exists.byte[]Return the contents of this resource as a byte array.getContentAsString(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()This implementation returns the underlying File reference.This implementation returns the name of the file.This implementation opens a InputStream for the underlying file.This implementation opens a OutputStream for the underlying file.final StringgetPath()Return the file path for this resource.getURI()This implementation returns a URI for the underlying file.getURL()This implementation returns a URL for the underlying file.inthashCode()This implementation returns the hash code of the underlying Path reference.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 a Channel for the underlying file.This implementation opens a Channel for the underlying file.Methods inherited from class org.springframework.core.io.AbstractResource
getFileForLastModifiedCheck, isOpen, toString
-
Constructor Details
-
PathResource
Create a new PathResource from a Path handle.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
-
PathResource
Create a new PathResource from a Path handle.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:
-
PathResource
Create a new PathResource from a Path handle.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
-
getPath
Return the file path for this resource. -
exists
public boolean exists()This implementation returns whether the underlying file exists.- Specified by:
existsin interfaceResource- Overrides:
existsin classAbstractResource- See Also:
-
isReadable
public 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 interfaceResource- Overrides:
isReadablein classAbstractResource- See Also:
-
getInputStream
This implementation opens a InputStream for the underlying file.- Specified by:
getInputStreamin interfaceInputStreamSource- Returns:
- the input stream for the underlying resource (must not be
null) - Throws:
FileNotFoundException- if the underlying resource does not existIOException- if the content stream could not be opened- See Also:
-
getContentAsByteArray
Description copied from interface:ResourceReturn the contents of this resource as a byte array.- Specified by:
getContentAsByteArrayin interfaceResource- 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 systemIOException- in case of general resolution/reading failures
-
getContentAsString
Description copied from interface:ResourceReturns the contents of this resource as a string, using the specified charset.- Specified by:
getContentAsStringin interfaceResource- 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 systemIOException- in case of general resolution/reading failures
-
isWritable
public 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 interfaceWritableResource- See Also:
-
getOutputStream
This implementation opens a OutputStream for the underlying file.- Specified by:
getOutputStreamin interfaceWritableResource- Throws:
IOException- if the stream could not be opened- See Also:
-
getURL
This implementation returns a URL for the underlying file.- Specified by:
getURLin interfaceResource- Overrides:
getURLin classAbstractResource- Throws:
IOException- if the resource cannot be resolved as URL, i.e. if the resource is not available as a descriptor- See Also:
-
getURI
This implementation returns a URI for the underlying file.- Specified by:
getURIin interfaceResource- Overrides:
getURIin classAbstractResource- Throws:
IOException- if the resource cannot be resolved as URI, i.e. if the resource is not available as a descriptor- See Also:
-
isFile
public boolean isFile()This implementation always indicates a file.- Specified by:
isFilein interfaceResource- Overrides:
isFilein classAbstractResource- See Also:
-
getFile
This implementation returns the underlying File reference.- Specified by:
getFilein interfaceResource- Overrides:
getFilein classAbstractResource- Throws:
FileNotFoundException- if the resource cannot be resolved as absolute file path, i.e. if the resource is not available in a file systemIOException- in case of general resolution/reading failures- See Also:
-
readableChannel
This implementation opens a Channel for the underlying file.- Specified by:
readableChannelin interfaceResource- Overrides:
readableChannelin classAbstractResource- Returns:
- the byte channel for the underlying resource (must not be
null) - Throws:
FileNotFoundException- if the underlying resource doesn't existIOException- if the content channel could not be opened- See Also:
-
writableChannel
This implementation opens a Channel for the underlying file.- Specified by:
writableChannelin interfaceWritableResource- Returns:
- the byte channel for the underlying resource (must not be
null) - Throws:
FileNotFoundException- if the underlying resource doesn't existIOException- if the content channel could not be opened- See Also:
-
contentLength
This implementation returns the underlying file's length.- Specified by:
contentLengthin interfaceResource- Overrides:
contentLengthin classAbstractResource- Throws:
IOException- if the resource cannot be resolved (in the file system or as some other known physical resource type)- See Also:
-
lastModified
This implementation returns the underlying File's timestamp.- Specified by:
lastModifiedin interfaceResource- Overrides:
lastModifiedin classAbstractResource- Throws:
IOException- if the resource cannot be resolved (in the file system or as some other known physical resource type)- See Also:
-
createRelative
This implementation creates a PathResource, applying the given path relative to the path of the underlying file of this resource descriptor.- Specified by:
createRelativein interfaceResource- Overrides:
createRelativein classAbstractResource- Parameters:
relativePath- the relative path (relative to this resource)- Returns:
- the resource handle for the relative resource
- See Also:
-
getFilename
This implementation returns the name of the file.- Specified by:
getFilenamein interfaceResource- Overrides:
getFilenamein classAbstractResource- See Also:
-
getDescription
Description 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 interfaceResource- See Also:
-
equals
This implementation compares the underlying Path references.- Overrides:
equalsin classAbstractResource- See Also:
-
hashCode
public int hashCode()This implementation returns the hash code of the underlying Path reference.- Overrides:
hashCodein classAbstractResource- See Also:
-