public class FileUrlResource extends UrlResource implements WritableResource
UrlResource which assumes file resolution, to the degree
of implementing the WritableResource interface for it. This resource
variant also caches resolved File handles from getFile().
This is the class resolved by DefaultResourceLoader for a "file:..."
URL location, allowing a downcast to WritableResource for it.
Alternatively, for direct construction from a File handle
or NIO Path, consider using FileSystemResource.
| Constructor and Description |
|---|
FileUrlResource(String location)
Create a new
FileUrlResource based on the given file location,
using the URL protocol "file". |
FileUrlResource(URL url)
Create a new
FileUrlResource based on the given URL object. |
| Modifier and Type | Method and Description |
|---|---|
Resource |
createRelative(String relativePath)
This implementation creates a
UrlResource, delegating to
UrlResource.createRelativeURL(String) for adapting the relative path. |
File |
getFile()
This implementation returns a File reference for the underlying URL/URI,
provided that it refers to a file in the file system.
|
OutputStream |
getOutputStream()
Return an
OutputStream for the underlying resource,
allowing to (over-)write its content. |
boolean |
isWritable()
Indicate whether the contents of this resource can be written
via
WritableResource.getOutputStream(). |
WritableByteChannel |
writableChannel()
Return a
WritableByteChannel. |
createRelativeURL, equals, getDescription, getFilename, getInputStream, getURI, getURL, hashCode, isFilecontentLength, customizeConnection, customizeConnection, exists, getFile, getFileForLastModifiedCheck, isFile, isReadable, lastModified, readableChannelisOpen, toStringclone, finalize, getClass, notify, notifyAll, wait, wait, waitcontentLength, exists, getDescription, getFilename, getURI, getURL, isFile, isOpen, isReadable, lastModified, readableChannelgetInputStreampublic FileUrlResource(URL url)
FileUrlResource based on the given URL object.
Note that this does not enforce "file" as URL protocol. If a protocol is known to be resolvable to a file, it is acceptable for this purpose.
url - a URLResourceUtils.isFileURL(URL),
getFile()public FileUrlResource(String location) throws MalformedURLException
FileUrlResource based on the given file location,
using the URL protocol "file".
The given parts will automatically get encoded if necessary.
location - the location (i.e. the file path within that protocol)MalformedURLException - if the given URL specification is not validUrlResource.UrlResource(String, String),
ResourceUtils.URL_PROTOCOL_FILEpublic File getFile() throws IOException
UrlResourcegetFile in interface ResourcegetFile in class UrlResourceFileNotFoundException - 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 failuresResourceUtils.getFile(java.net.URL, String)public boolean isWritable()
WritableResourceWritableResource.getOutputStream().
Will be true for typical resource descriptors;
note that actual content writing may still fail when attempted.
However, a value of false is a definitive indication
that the resource content cannot be modified.
isWritable in interface WritableResourceWritableResource.getOutputStream(),
Resource.isReadable()public OutputStream getOutputStream() throws IOException
WritableResourceOutputStream for the underlying resource,
allowing to (over-)write its content.getOutputStream in interface WritableResourceIOException - if the stream could not be openedInputStreamSource.getInputStream()public WritableByteChannel writableChannel() throws IOException
WritableResourceWritableByteChannel.
It is expected that each call creates a fresh channel.
The default implementation returns Channels.newChannel(OutputStream)
with the result of WritableResource.getOutputStream().
writableChannel in interface WritableResourcenull)FileNotFoundException - if the underlying resource doesn't existIOException - if the content channel could not be openedWritableResource.getOutputStream()public Resource createRelative(String relativePath) throws MalformedURLException
UrlResourceUrlResource, delegating to
UrlResource.createRelativeURL(String) for adapting the relative path.createRelative in interface ResourcecreateRelative in class UrlResourcerelativePath - the relative path (relative to this resource)MalformedURLExceptionUrlResource.createRelativeURL(String)