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 newPathResourcefrom a path string.PathResource(URI uri) Create a newPathResourcefrom aURI.PathResource(Path path) Create a newPathResourcefrom aPathhandle. -
Method Summary
Modifier 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.AbstractResource
getFileForLastModifiedCheck, isOpen, toString
-
Constructor Details
-
PathResource
Create a newPathResourcefrom aPathhandle.Note: Unlike
FileSystemResource, when building relative resources viacreateRelative(java.lang.String), the relative path will be built underneath the given root: for example, Paths.get("C:/dir1/"), relative path "dir2" → "C:/dir1/dir2"!- Parameters:
path- a Path handle
-
PathResource
Create 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: for example, Paths.get("C:/dir1/"), relative path "dir2" → "C:/dir1/dir2"!- Parameters:
path- a path- See Also:
-
PathResource
Create a newPathResourcefrom aURI.Note: Unlike
FileSystemResource, when building relative resources viacreateRelative(java.lang.String), the relative path will be built underneath the given root: for example, 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 anInputStreamfor 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:ResourceReturn 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 anOutputStreamfor the underlying file.- Specified by:
getOutputStreamin interfaceWritableResource- Throws:
IOException- if the stream could not be opened- See Also:
-
getURL
This implementation returns aURLfor 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 aURIfor 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 underlyingFilereference.- 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 aReadableByteChannelfor 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 aWritableByteChannelfor 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 aPathResource, 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 underlyingPathreferences.- Overrides:
equalsin classAbstractResource- See Also:
-
hashCode
public int hashCode()This implementation returns the hash code of the underlyingPathreference.- Overrides:
hashCodein classAbstractResource- See Also:
-