Class FileSystemResource
- All Implemented Interfaces:
InputStreamSource
,Resource
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 {link WritableResource} interface.
Note: As of Spring Framework 5.0, this {link Resource} implementation uses NIO.2 API for read/write interactions. As of 5.1, it may be constructed with a {link java.nio.file.Path} handle in which case it will perform all file system interactions via NIO.2, only resorting to {link File} on {link #getFile()}.
- Since:
- 28.12.2003
- Author:
- Juergen Hoeller see #FileSystemResource(String) see #FileSystemResource(File) see #FileSystemResource(Path) see java.io.File see java.nio.file.Files
-
Constructor Summary
ConstructorDescriptionFileSystemResource
(File filE) Create a newFileSystemResource
from a {link File} handle.FileSystemResource
(String path) Create a newFileSystemResource
from a file path.FileSystemResource
(FileSystem fileSystem, String path) Create a newFileSystemResource
from a {link FileSystem} handle, locating the specified path. -
Method Summary
Modifier and TypeMethodDescriptionlong
This 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.boolean
This implementation compares the underlying File references.boolean
exists()
This implementation returns whether the underlying file exists.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 a NIO file stream for the underlying file.final String
getPath()
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.int
hashCode()
This implementation returns the hash code of the underlying File reference.boolean
isFile()
This implementation always indicates a file.Methods inherited from class nl.basjes.parse.useragent.utils.springframework.core.io.AbstractResource
isOpen, toString
-
Constructor Details
-
FileSystemResource
Create a newFileSystemResource
from a file path.Note: When building relative resources via {link #createRelative}, 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: e.g. 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 #FileSystemResource(Path)
-
FileSystemResource
Create a newFileSystemResource
from a {link File} handle.Note: When building relative resources via {link #createRelative}, the relative path will apply at the same directory level: e.g. new File("C:/dir1"), relative path "dir2" → "C:/dir2"! If you prefer to have relative paths built underneath the given root directory, use the {link #FileSystemResource(String) constructor with a file path} to 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 #FileSystemResource(Path) see #getFile()
-
FileSystemResource
Create a newFileSystemResource
from a {link FileSystem} handle, locating the specified path.This is an alternative to {link #FileSystemResource(String)}, performing all file system interactions via NIO.2 instead of {link File}.
- Parameters:
fileSystem
- the FileSystem to locate the path withinpath
- a file path see #FileSystemResource(File)- Since:
- 5.1.1
-
-
Method Details
-
getPath
Return the file path for this resource. -
exists
public boolean exists()This implementation returns whether the underlying file exists. see java.io.File#exists()- Specified by:
exists
in interfaceResource
- Overrides:
exists
in classAbstractResource
-
getInputStream
This implementation opens a NIO file stream for the underlying file. see java.io.FileInputStream- Specified by:
getInputStream
in 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 Resource#isReadable()
-
getURL
This implementation returns a URL for the underlying file. see java.io.File#toURI()- Specified by:
getURL
in interfaceResource
- Overrides:
getURL
in classAbstractResource
- Throws:
IOException
- if the resource cannot be resolved as URL, i.e. if the resource is not available as a descriptor
-
getURI
This implementation returns a URI for the underlying file. see java.io.File#toURI()- Specified by:
getURI
in interfaceResource
- Overrides:
getURI
in classAbstractResource
- Throws:
IOException
- if the resource cannot be resolved as URI, i.e. if the resource is not available as a descriptor
-
isFile
public boolean isFile()This implementation always indicates a file.- Specified by:
isFile
in interfaceResource
- Overrides:
isFile
in classAbstractResource
-
getFile
This implementation returns the underlying File reference.- Specified by:
getFile
in interfaceResource
- Overrides:
getFile
in classAbstractResource
-
contentLength
This implementation returns the underlying File/Path length.- Specified by:
contentLength
in interfaceResource
- Overrides:
contentLength
in classAbstractResource
- Throws:
IOException
- if the resource cannot be resolved (in the file system or as some other known physical resource type)
-
createRelative
This implementation creates a FileSystemResource, applying the given path relative to the path of the underlying file of this resource descriptor. see org.springframework.util.StringUtils#applyRelativePath(String, String)- Specified by:
createRelative
in interfaceResource
- Overrides:
createRelative
in classAbstractResource
- Parameters:
relativePath
- the relative path (relative to this resource)- Returns:
- the resource handle for the relative resource
-
getFilename
This implementation returns the name of the file. see java.io.File#getName()- Specified by:
getFilename
in interfaceResource
- Overrides:
getFilename
in classAbstractResource
-
getDescription
This implementation returns a description that includes the absolute path of the file. see java.io.File#getAbsolutePath()- Specified by:
getDescription
in interfaceResource
-
equals
This implementation compares the underlying File references.- Overrides:
equals
in classAbstractResource
-
hashCode
public int hashCode()This implementation returns the hash code of the underlying File reference.- Overrides:
hashCode
in classAbstractResource
-