Class FileSystemResource
- All Implemented Interfaces:
- InputStreamSource,- Resource,- WritableResource
Resource implementation for java.io.File and
 java.nio.file.Path handles with a file system target.
 Supports resolution as a File and also as a URL.
 Implements the extended WritableResource interface.
 Note: This Resource implementation uses NIO.2 API for read/write
 interactions and may be constructed with a Path handle
 in which case it will perform all file system interactions via NIO.2, only
 resorting to File on getFile().
- Since:
- 28.12.2003
- Author:
- Juergen Hoeller, Sam Brannen
- See Also:
- 
Constructor SummaryConstructorsConstructorDescriptionFileSystemResource(File file) Create a newFileSystemResourcefrom aFilehandle.FileSystemResource(String path) Create a newFileSystemResourcefrom a file path.FileSystemResource(FileSystem fileSystem, String path) Create a newFileSystemResourcefrom aFileSystemhandle, locating the specified path.FileSystemResource(Path filePath) 
- 
Method SummaryModifier and TypeMethodDescriptionlongThis implementation returns the underlying File/Path length.createRelative(String relativePath) This implementation creates a FileSystemResource, applying the given path relative to the path of the underlying file of this resource descriptor.booleanThis implementation compares the underlying file paths.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.This implementation returns a description that includes the absolute path of the file.getFile()This implementation returns the underlying File reference.This implementation returns the name of the file.This implementation opens an NIO file stream for the underlying file.This implementation opens a FileOutputStream 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 file path.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/Path last-modified time.This implementation opens a FileChannel for the underlying file.This implementation opens a FileChannel for the underlying file.Methods inherited from class org.springframework.core.io.AbstractResourcegetFileForLastModifiedCheck, isOpen, toString
- 
Constructor Details- 
FileSystemResourceCreate a newFileSystemResourcefrom a file path.Note: When building relative resources via createRelative(java.lang.String), it makes a difference whether the specified resource base path here ends with a slash or not. In the case of "C:/dir1/", relative paths will be built underneath that root: for example, relative path "dir2" → "C:/dir1/dir2". In the case of "C:/dir1", relative paths will apply at the same directory level: relative path "dir2" → "C:/dir2".- Parameters:
- path- a file path
- See Also:
 
- 
FileSystemResourceCreate a newFileSystemResourcefrom aFilehandle.Note: When building relative resources via createRelative(java.lang.String), the relative path will apply at the same directory level: for example, new File("C:/dir1"), relative path "dir2" → "C:/dir2"! If you prefer to have relative paths built underneath the given root directory, use theconstructor with a file pathto append a trailing slash to the root path: "C:/dir1/", which indicates this directory as root for all relative paths.- Parameters:
- file- a File handle
- See Also:
 
- 
FileSystemResourceCreate a newFileSystemResourcefrom aPathhandle, performing all file system interactions via NIO.2 instead ofFile.In contrast to PathResource, this variant strictly follows the generalFileSystemResourceconventions, in particular in terms of path cleaning andcreateRelative(String)handling.Note: When building relative resources via createRelative(java.lang.String), the relative path will apply at the same directory level: for example, Paths.get("C:/dir1"), relative path "dir2" → "C:/dir2"! If you prefer to have relative paths built underneath the given root directory, use theconstructor with a file pathto append a trailing slash to the root path: "C:/dir1/", which indicates this directory as root for all relative paths. Alternatively, consider usingPathResource(Path)forjava.nio.path.Pathresolution increateRelative, always nesting relative paths.- Parameters:
- filePath- a Path handle to a file
- Since:
- 5.1
- See Also:
 
- 
FileSystemResourceCreate a newFileSystemResourcefrom aFileSystemhandle, locating the specified path.This is an alternative to FileSystemResource(String), performing all file system interactions via NIO.2 instead ofFile.- Parameters:
- fileSystem- the FileSystem to locate the path within
- path- a file path
- Since:
- 5.1.1
- 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 an NIO file stream for 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 a FileOutputStream for the underlying file.- Specified by:
- getOutputStreamin interface- WritableResource
- Throws:
- IOException- if the stream could not be opened
- See Also:
 
- 
getURLThis implementation returns a URL for 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 a URI for 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 underlying File reference.- Specified by:
- getFilein interface- Resource
- Overrides:
- getFilein class- AbstractResource
- See Also:
 
- 
readableChannelThis implementation opens a FileChannel for 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 a FileChannel for 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/Path 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/Path last-modified time.- 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 a FileSystemResource, 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:
 
- 
getDescriptionThis implementation returns a description that includes the absolute path of the file.- Specified by:
- getDescriptionin interface- Resource
- See Also:
 
- 
equalsThis implementation compares the underlying file paths.- Overrides:
- equalsin class- AbstractResource
- See Also:
 
- 
hashCodepublic int hashCode()This implementation returns the hash code of the underlying file path.- Overrides:
- hashCodein class- AbstractResource
- See Also:
 
 
-