org.springframework.core.io

Class FileSystemResource

    • Constructor Summary

      Constructors 
      Constructor and Description
      FileSystemResource(java.io.File file)
      Create a new FileSystemResource from a File handle.
      FileSystemResource(java.nio.file.Path filePath)
      Create a new FileSystemResource from a Path handle.
      FileSystemResource(java.lang.String path)
      Create a new FileSystemResource from a file path.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      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 other)
      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 NIO file stream 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 isFile()
      This implementation always indicates a file.
      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).
      java.nio.channels.ReadableByteChannel readableChannel()
      This implementation opens a FileChannel for the underlying file.
      java.nio.channels.WritableByteChannel writableChannel()
      This implementation opens a FileChannel for the underlying file.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • FileSystemResource

        public FileSystemResource(java.lang.String path)
        Create a new 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".

        Parameters:
        path - a file path
        See Also:
        FileSystemResource(Path)
      • FileSystemResource

        public FileSystemResource(java.io.File file)
        Create a new 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.

        Parameters:
        file - a File handle
        See Also:
        FileSystemResource(Path), getFile()
    • Method Detail

      • getPath

        public final java.lang.String getPath()
        Return the file path for this resource.
      • exists

        public boolean exists()
        This implementation returns whether the underlying file exists.
        Specified by:
        exists in interface Resource
        Overrides:
        exists in class AbstractResource
        See Also:
        File.exists()
      • isReadable

        public 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).
        Specified by:
        isReadable in interface Resource
        Overrides:
        isReadable in class AbstractResource
        See Also:
        File.canRead(), File.isDirectory()
      • getInputStream

        public java.io.InputStream getInputStream()
                                           throws java.io.IOException
        This implementation opens a NIO file stream for the underlying file.
        Specified by:
        getInputStream in interface InputStreamSource
        Returns:
        the input stream for the underlying resource (must not be null)
        Throws:
        java.io.FileNotFoundException - if the underlying resource doesn't exist
        java.io.IOException - if the content stream could not be opened
        See Also:
        FileInputStream
      • isWritable

        public 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).
        Specified by:
        isWritable in interface WritableResource
        See Also:
        File.canWrite(), File.isDirectory()
      • getOutputStream

        public java.io.OutputStream getOutputStream()
                                             throws java.io.IOException
        This implementation opens a FileOutputStream for the underlying file.
        Specified by:
        getOutputStream in interface WritableResource
        Throws:
        java.io.IOException - if the stream could not be opened
        See Also:
        FileOutputStream
      • getURL

        public java.net.URL getURL()
                            throws java.io.IOException
        This implementation returns a URL for the underlying file.
        Specified by:
        getURL in interface Resource
        Overrides:
        getURL in class AbstractResource
        Throws:
        java.io.IOException - if the resource cannot be resolved as URL, i.e. if the resource is not available as descriptor
        See Also:
        File.toURI()
      • getURI

        public java.net.URI getURI()
                            throws java.io.IOException
        This implementation returns a URI for the underlying file.
        Specified by:
        getURI in interface Resource
        Overrides:
        getURI in class AbstractResource
        Throws:
        java.io.IOException - if the resource cannot be resolved as URI, i.e. if the resource is not available as descriptor
        See Also:
        File.toURI()
      • readableChannel

        public java.nio.channels.ReadableByteChannel readableChannel()
                                                              throws java.io.IOException
        This implementation opens a FileChannel for the underlying file.
        Specified by:
        readableChannel in interface Resource
        Overrides:
        readableChannel in class AbstractResource
        Returns:
        the byte channel for the underlying resource (must not be null)
        Throws:
        java.io.FileNotFoundException - if the underlying resource doesn't exist
        java.io.IOException - if the content channel could not be opened
        See Also:
        FileChannel
      • writableChannel

        public java.nio.channels.WritableByteChannel writableChannel()
                                                              throws java.io.IOException
        This implementation opens a FileChannel for the underlying file.
        Specified by:
        writableChannel in interface WritableResource
        Returns:
        the byte channel for the underlying resource (must not be null)
        Throws:
        java.io.FileNotFoundException - if the underlying resource doesn't exist
        java.io.IOException - if the content channel could not be opened
        See Also:
        FileChannel
      • getDescription

        public java.lang.String getDescription()
        This implementation returns a description that includes the absolute path of the file.
        Specified by:
        getDescription in interface Resource
        See Also:
        File.getAbsolutePath()