Class PathResource

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, ResourceFactory

    public class PathResource
    extends Resource
    Java NIO Path equivalent of FileResource.
    • Constructor Detail

      • PathResource

        public PathResource​(java.io.File file)
        Construct a new PathResource from a File object.

        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());
         
        Parameters:
        file - the file to use
      • PathResource

        public PathResource​(java.nio.file.Path path)
        Construct a new PathResource from a Path object.
        Parameters:
        path - the path to use
      • PathResource

        public PathResource​(java.net.URI uri)
                     throws java.io.IOException
        Construct a new PathResource from a URI object.

        Must be an absolute URI using the file scheme.

        Parameters:
        uri - the URI to build this PathResource from.
        Throws:
        java.io.IOException - if unable to construct the PathResource from the URI.
      • PathResource

        public PathResource​(java.net.URL url)
                     throws java.io.IOException,
                            java.net.URISyntaxException
        Create a new PathResource from a provided URL object.

        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());
         
        Parameters:
        url - the url to attempt to create PathResource from
        Throws:
        java.io.IOException - if URL doesn't point to a location that can be transformed to a PathResource
        java.net.URISyntaxException - if the provided URL was malformed
    • Method Detail

      • addPath

        public Resource addPath​(java.lang.String subpath)
                         throws java.io.IOException
        Description copied from class: Resource
        Returns the resource contained inside the current resource with the given name.
        Specified by:
        addPath in class Resource
        Parameters:
        subpath - The path segment to add, which is not encoded
        Returns:
        the Resource for the resolved path within this Resource.
        Throws:
        java.io.IOException - if unable to resolve the path
        java.net.MalformedURLException - if the resolution of the path fails because the input path parameter is malformed.
      • close

        public void close()
        Description copied from class: Resource
        Release any temporary resources held by the resource.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in class Resource
      • delete

        public boolean delete()
                       throws java.lang.SecurityException
        Description copied from class: Resource
        Deletes the given resource
        Specified by:
        delete in class Resource
        Returns:
        true if resource was found and successfully deleted, false if resource didn't exist or was unable to be deleted.
        Throws:
        java.lang.SecurityException - if unable to delete due to permissions
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • exists

        public boolean exists()
        Specified by:
        exists in class Resource
        Returns:
        true if the represented resource exists.
      • getFile

        public java.io.File getFile()
                             throws java.io.IOException
        Description copied from class: Resource
        File representing the given resource.
        Specified by:
        getFile in class Resource
        Returns:
        an File representing the given resource or NULL if this is not possible.
        Throws:
        java.io.IOException - if unable to get the resource due to permissions
      • getPath

        public java.nio.file.Path getPath()
        Returns:
        the Path of the resource
      • getInputStream

        public java.io.InputStream getInputStream()
                                           throws java.io.IOException
        Description copied from class: Resource
        Input stream to the resource
        Specified by:
        getInputStream in class Resource
        Returns:
        an input stream to the resource
        Throws:
        java.io.IOException - if unable to open the input stream
      • getName

        public java.lang.String getName()
        Description copied from class: Resource
        The name of the resource.
        Specified by:
        getName in class Resource
        Returns:
        the name of the resource
      • getReadableByteChannel

        public java.nio.channels.ReadableByteChannel getReadableByteChannel()
                                                                     throws java.io.IOException
        Description copied from class: Resource
        Readable ByteChannel for the resource.
        Specified by:
        getReadableByteChannel in class Resource
        Returns:
        an readable bytechannel to the resource or null if one is not available.
        Throws:
        java.io.IOException - if unable to open the readable bytechannel for the resource.
      • newSeekableByteChannel

        public java.nio.channels.SeekableByteChannel newSeekableByteChannel()
                                                                     throws java.io.IOException
        Throws:
        java.io.IOException
      • getURI

        public java.net.URI getURI()
        Description copied from class: Resource
        URI representing the resource.
        Overrides:
        getURI in class Resource
        Returns:
        an URI representing the given resource
      • getURL

        public java.net.URL getURL()
        Description copied from class: Resource
        URL representing the resource.
        Specified by:
        getURL in class Resource
        Returns:
        an URL representing the given resource
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • isContainedIn

        public boolean isContainedIn​(Resource r)
                              throws java.net.MalformedURLException
        Specified by:
        isContainedIn in class Resource
        Throws:
        java.net.MalformedURLException
      • isDirectory

        public boolean isDirectory()
        Specified by:
        isDirectory in class Resource
        Returns:
        true if the represented resource is a container/directory. if the resource is not a file, resources ending with "/" are considered directories.
      • lastModified

        public long lastModified()
        Description copied from class: Resource
        Time resource was last modified.
        Specified by:
        lastModified in class Resource
        Returns:
        the last modified time as milliseconds since unix epoch
      • length

        public long length()
        Description copied from class: Resource
        Length of the resource.
        Specified by:
        length in class Resource
        Returns:
        the length of the resource
      • isAlias

        public boolean isAlias()
        Overrides:
        isAlias in class Resource
        Returns:
        true if this Resource is an alias to another real Resource
      • getAliasPath

        public java.nio.file.Path getAliasPath()
        The Alias as a Path.

        Note: this cannot return the alias as a DIFFERENT path in 100% of situations, due to Java's internal Path/File normalization.

        Returns:
        the alias as a path.
      • getAlias

        public java.net.URI getAlias()
        Overrides:
        getAlias in class Resource
        Returns:
        The canonical Alias of this resource or null if none.
      • list

        public java.lang.String[] list()
        Description copied from class: Resource
        list of resource names contained in the given resource. Ordering is unspecified, so callers may wish to sort the return value to ensure deterministic behavior.
        Specified by:
        list in class Resource
        Returns:
        a list of resource names contained in the given resource, or null. Note: The resource names are not URL encoded.
      • renameTo

        public boolean renameTo​(Resource dest)
                         throws java.lang.SecurityException
        Description copied from class: Resource
        Rename the given resource
        Specified by:
        renameTo in class Resource
        Parameters:
        dest - the destination name for the resource
        Returns:
        true if the resource was renamed, false if the resource didn't exist or was unable to be renamed.
        Throws:
        java.lang.SecurityException - if unable to rename due to permissions
      • copyTo

        public void copyTo​(java.io.File destination)
                    throws java.io.IOException
        Description copied from class: Resource
        Copy the Resource to the new destination file.

        Will not replace existing destination file.

        Overrides:
        copyTo in class Resource
        Parameters:
        destination - the destination file to create
        Throws:
        java.io.IOException - if unable to copy the resource
      • writeTo

        public void writeTo​(java.io.OutputStream outputStream,
                            long start,
                            long count)
                     throws java.io.IOException
        Overrides:
        writeTo in class Resource
        Parameters:
        outputStream - the output stream to write to
        start - First byte to write
        count - Bytes to write or -1 for all of them.
        Throws:
        java.io.IOException - if unable to copy the Resource to the output
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object