Class FileUrlResource
- All Implemented Interfaces:
InputStreamSource,Resource,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.
- Since:
- 5.0.2
- Author:
- Juergen Hoeller
-
Constructor Summary
ConstructorsConstructorDescriptionFileUrlResource(String location) Create a newFileUrlResourcebased on the given file location, using the URL protocol "file".FileUrlResource(URL url) Create a newFileUrlResourcebased on the given URL object. -
Method Summary
Modifier and TypeMethodDescriptioncreateRelative(String relativePath) This implementation creates aUrlResource, delegating toUrlResource.createRelativeURL(String)for adapting the relative path.getFile()This implementation returns a File reference for the underlying URL/URI, provided that it refers to a file in the file system.Return anOutputStreamfor the underlying resource, allowing to (over-)write its content.booleanIndicate whether the contents of this resource can be written viaWritableResource.getOutputStream().Return aWritableByteChannel.Methods inherited from class org.springframework.core.io.UrlResource
createRelativeURL, equals, from, from, getDescription, getFilename, getInputStream, getURI, getURL, hashCode, isFileMethods inherited from class org.springframework.core.io.AbstractFileResolvingResource
contentLength, customizeConnection, customizeConnection, exists, getFile, getFileForLastModifiedCheck, isFile, isReadable, lastModified, readableChannelMethods inherited from class org.springframework.core.io.AbstractResource
isOpen, toStringMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.springframework.core.io.InputStreamSource
getInputStreamMethods inherited from interface org.springframework.core.io.Resource
contentLength, exists, getContentAsByteArray, getContentAsString, getDescription, getFilename, getURI, getURL, isFile, isOpen, isReadable, lastModified, readableChannel
-
Constructor Details
-
FileUrlResource
Create a newFileUrlResourcebased 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.
- Parameters:
url- a URL- See Also:
-
FileUrlResource
Create a newFileUrlResourcebased on the given file location, using the URL protocol "file".The given parts will automatically get encoded if necessary.
- Parameters:
location- the location (i.e. the file path within that protocol)- Throws:
MalformedURLException- if the given URL specification is not valid- See Also:
-
-
Method Details
-
getFile
Description copied from class:UrlResourceThis implementation returns a File reference for the underlying URL/URI, provided that it refers to a file in the file system.- Specified by:
getFilein interfaceResource- Overrides:
getFilein classUrlResource- 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:
-
isWritable
public boolean isWritable()Description copied from interface:WritableResourceIndicate whether the contents of this resource can be written viaWritableResource.getOutputStream().Will be
truefor typical resource descriptors; note that actual content writing may still fail when attempted. However, a value offalseis a definitive indication that the resource content cannot be modified.- Specified by:
isWritablein interfaceWritableResource- See Also:
-
getOutputStream
Description copied from interface:WritableResourceReturn anOutputStreamfor the underlying resource, allowing to (over-)write its content.- Specified by:
getOutputStreamin interfaceWritableResource- Throws:
IOException- if the stream could not be opened- See Also:
-
writableChannel
Description copied from interface:WritableResourceReturn aWritableByteChannel.It is expected that each call creates a fresh channel.
The default implementation returns
Channels.newChannel(OutputStream)with the result ofWritableResource.getOutputStream().- 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:
-
createRelative
Description copied from class:UrlResourceThis implementation creates aUrlResource, delegating toUrlResource.createRelativeURL(String)for adapting the relative path.- Specified by:
createRelativein interfaceResource- Overrides:
createRelativein classUrlResource- Parameters:
relativePath- the relative path (relative to this resource)- Returns:
- the resource handle for the relative resource
- Throws:
MalformedURLException- See Also:
-