public class PathResource extends Resource
__defaultUseCaches
Constructor and Description |
---|
PathResource(java.io.File file)
Construct a new PathResource from a File object.
|
PathResource(java.nio.file.Path path)
Construct a new PathResource from a Path object.
|
PathResource(java.net.URI uri)
Construct a new PathResource from a URI object.
|
PathResource(java.net.URL url)
Create a new PathResource from a provided URL object.
|
Modifier and Type | Method and Description |
---|---|
Resource |
addPath(java.lang.String subpath)
Returns the resource contained inside the current resource with the
given name.
|
void |
close()
Release any temporary resources held by the resource.
|
void |
copyTo(java.io.File destination)
Copy the Resource to the new destination file.
|
boolean |
delete()
Deletes the given resource
|
boolean |
equals(java.lang.Object obj) |
boolean |
exists() |
java.net.URI |
getAlias() |
java.nio.file.Path |
getAliasPath()
The Alias as a Path.
|
java.io.File |
getFile()
File representing the given resource.
|
java.io.InputStream |
getInputStream()
Input stream to the resource
|
java.lang.String |
getName()
The name of the resource.
|
java.nio.file.Path |
getPath() |
java.nio.channels.ReadableByteChannel |
getReadableByteChannel()
Readable ByteChannel for the resource.
|
java.net.URI |
getURI()
URI representing the resource.
|
java.net.URL |
getURL()
URL representing the resource.
|
int |
hashCode() |
boolean |
isAlias() |
boolean |
isContainedIn(Resource r) |
boolean |
isDirectory() |
static boolean |
isSameName(java.nio.file.Path pathA,
java.nio.file.Path pathB)
Test if the paths are the same name.
|
long |
lastModified()
Time resource was last modified.
|
long |
length()
Length of the resource.
|
java.lang.String[] |
list()
list of resource names contained in the given resource.
|
java.nio.channels.SeekableByteChannel |
newSeekableByteChannel() |
boolean |
renameTo(Resource dest)
Rename the given resource
|
java.lang.String |
toString() |
void |
writeTo(java.io.OutputStream outputStream,
long start,
long count) |
encode, finalize, getAllResources, getAssociate, getDefaultUseCaches, getListHTML, getListHTML, getResource, getWeakETag, getWeakETag, isContainedIn, newClassPathResource, newClassPathResource, newResource, newResource, newResource, newResource, newResource, newResource, newSystemResource, release, setAssociate, setDefaultUseCaches, toURL
public PathResource(java.io.File file)
An invocation of this convenience constructor of the form.
new PathResource(file);
behaves in exactly the same way as the expression
new PathResource(file.toPath());
file
- the file to usepublic PathResource(java.nio.file.Path path)
path
- the path to usepublic PathResource(java.net.URI uri) throws java.io.IOException
Must be an absolute URI using the file
scheme.
uri
- the URI to build this PathResource from.java.io.IOException
- if unable to construct the PathResource from the URI.public PathResource(java.net.URL url) throws java.io.IOException, java.net.URISyntaxException
An invocation of this convenience constructor of the form.
new PathResource(url);
behaves in exactly the same way as the expression
new PathResource(url.toURI());
url
- the url to attempt to create PathResource fromjava.io.IOException
- if URL doesn't point to a location that can be transformed to a PathResourcejava.net.URISyntaxException
- if the provided URL was malformedpublic static boolean isSameName(java.nio.file.Path pathA, java.nio.file.Path pathB)
If the real path is not the same as the absolute path then we know that the real path is the alias for the provided path.
For OS's that are case insensitive, this should return the real (on-disk / case correct) version of the path.
We have to be careful on Windows and OSX.
Assume we have the following scenario:
Path a = new File("foo").toPath(); Files.createFile(a); Path b = new File("FOO").toPath();
There now exists a file called foo
on disk.
Using Windows or OSX, with a Path reference of
FOO
, Foo
, fOO
, etc.. means the following
| OSX | Windows | Linux -----------------------+---------+------------+--------- Files.exists(a) | True | True | True Files.exists(b) | True | True | False Files.isSameFile(a,b) | True | True | False a.equals(b) | False | True | False
See the javadoc for Path.equals() for details about this FileSystem behavior difference
We also cannot rely on a.compareTo(b) as this is roughly equivalent in implementation to a.equals(b)
public Resource addPath(java.lang.String subpath) throws java.io.IOException
Resource
addPath
in class Resource
subpath
- The path segment to add, which is not encodedjava.io.IOException
- if unable to resolve the pathjava.net.MalformedURLException
- if the resolution of the path fails because the input path parameter is malformed.public void close()
Resource
public boolean delete() throws java.lang.SecurityException
Resource
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public boolean exists()
public java.io.File getFile() throws java.io.IOException
Resource
public java.nio.file.Path getPath()
Path
of the resourcepublic java.io.InputStream getInputStream() throws java.io.IOException
Resource
getInputStream
in class Resource
java.io.IOException
- if unable to open the input streampublic java.lang.String getName()
Resource
public java.nio.channels.ReadableByteChannel getReadableByteChannel() throws java.io.IOException
Resource
getReadableByteChannel
in class Resource
java.io.IOException
- if unable to open the readable bytechannel for the resource.public java.nio.channels.SeekableByteChannel newSeekableByteChannel() throws java.io.IOException
java.io.IOException
public java.net.URI getURI()
Resource
public java.net.URL getURL()
Resource
public int hashCode()
hashCode
in class java.lang.Object
public boolean isContainedIn(Resource r) throws java.net.MalformedURLException
isContainedIn
in class Resource
java.net.MalformedURLException
public boolean isDirectory()
isDirectory
in class Resource
public long lastModified()
Resource
lastModified
in class Resource
public long length()
Resource
public boolean isAlias()
public java.nio.file.Path getAliasPath()
Note: this cannot return the alias as a DIFFERENT path in 100% of situations, due to Java's internal Path/File normalization.
public java.net.URI getAlias()
public java.lang.String[] list()
Resource
public boolean renameTo(Resource dest) throws java.lang.SecurityException
Resource
public void copyTo(java.io.File destination) throws java.io.IOException
Resource
Will not replace existing destination file.
public void writeTo(java.io.OutputStream outputStream, long start, long count) throws java.io.IOException
public java.lang.String toString()
toString
in class java.lang.Object
Copyright © 1995–2020 Webtide. All rights reserved.