public class FileSystemResource extends AbstractResource implements WritableResource
Resource
implementation for java.io.File
handles.
Supports resolution as a File
and also as a URL
.
Implements the extended WritableResource
interface.File
Modifier and Type | Field and Description |
---|---|
private java.io.File |
file |
private java.lang.String |
path |
Constructor and Description |
---|
FileSystemResource(java.io.File file)
Create a new
FileSystemResource from a File handle. |
FileSystemResource(java.lang.String path)
Create a new
FileSystemResource from a file path. |
Modifier and Type | Method and Description |
---|---|
long |
contentLength()
This implementation returns the underlying File's length.
|
Resource |
createRelative(java.lang.String relativePath)
This implementation creates a FileSystemResource, applying the given path
relative to the path of the underlying file of this resource descriptor.
|
boolean |
equals(java.lang.Object obj)
This implementation compares the underlying File references.
|
boolean |
exists()
This implementation returns whether the underlying file exists.
|
java.lang.String |
getDescription()
This implementation returns a description that includes the absolute
path of the file.
|
java.io.File |
getFile()
This implementation returns the underlying File reference.
|
java.lang.String |
getFilename()
This implementation returns the name of the file.
|
java.io.InputStream |
getInputStream()
This implementation opens a FileInputStream for the underlying file.
|
java.io.OutputStream |
getOutputStream()
This implementation opens a FileOutputStream for the underlying file.
|
java.lang.String |
getPath()
Return the file path for this resource.
|
java.net.URI |
getURI()
This implementation returns a URI for the underlying file.
|
java.net.URL |
getURL()
This implementation returns a URL for the underlying file.
|
int |
hashCode()
This implementation returns the hash code of the underlying File reference.
|
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).
|
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).
|
getFileForLastModifiedCheck, isOpen, lastModified, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
isOpen, lastModified
public FileSystemResource(java.io.File file)
FileSystemResource
from a File
handle.
Note: When building relative resources via createRelative(java.lang.String)
,
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 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.
file
- a File handlepublic FileSystemResource(java.lang.String path)
FileSystemResource
from 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: 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".
path
- a file pathpublic final java.lang.String getPath()
public boolean exists()
exists
in interface Resource
exists
in class AbstractResource
File.exists()
public boolean isReadable()
isReadable
in interface Resource
isReadable
in class AbstractResource
File.canRead()
,
File.isDirectory()
public java.io.InputStream getInputStream() throws java.io.IOException
getInputStream
in interface InputStreamSource
null
)java.io.IOException
- if the stream could not be openedFileInputStream
public boolean isWritable()
isWritable
in interface WritableResource
File.canWrite()
,
File.isDirectory()
public java.io.OutputStream getOutputStream() throws java.io.IOException
getOutputStream
in interface WritableResource
java.io.IOException
- if the stream could not be openedFileOutputStream
public java.net.URL getURL() throws java.io.IOException
getURL
in interface Resource
getURL
in class AbstractResource
java.io.IOException
- if the resource cannot be resolved as URL,
i.e. if the resource is not available as descriptorFile.toURI()
public java.net.URI getURI() throws java.io.IOException
getURI
in interface Resource
getURI
in class AbstractResource
java.io.IOException
- if the resource cannot be resolved as URI,
i.e. if the resource is not available as descriptorFile.toURI()
public java.io.File getFile()
getFile
in interface Resource
getFile
in class AbstractResource
public long contentLength() throws java.io.IOException
contentLength
in interface Resource
contentLength
in class AbstractResource
java.io.IOException
- if the resource cannot be resolved
(in the file system or as some other known physical resource type)InputStreamSource.getInputStream()
public Resource createRelative(java.lang.String relativePath)
createRelative
in interface Resource
createRelative
in class AbstractResource
relativePath
- the relative path (relative to this resource)StringUtils.applyRelativePath(String, String)
public java.lang.String getFilename()
getFilename
in interface Resource
getFilename
in class AbstractResource
File.getName()
public java.lang.String getDescription()
getDescription
in interface Resource
File.getAbsolutePath()
public boolean equals(java.lang.Object obj)
equals
in class AbstractResource
Resource.getDescription()
public int hashCode()
hashCode
in class AbstractResource
Resource.getDescription()