org.springframework.core.io
Class FileSystemResource

java.lang.Object
  extended by org.springframework.core.io.AbstractResource
      extended by org.springframework.core.io.FileSystemResource
All Implemented Interfaces:
InputStreamSource, Resource

public class FileSystemResource
extends AbstractResource

Resource implementation for java.io.File handles. Obviously supports resolution as File, and also as URL.

Since:
28.12.2003
Author:
Juergen Hoeller
See Also:
File

Constructor Summary
FileSystemResource(java.io.File file)
          Create a new FileSystemResource from a File handle.
FileSystemResource(java.lang.String path)
          Create a new FileSystemResource from a file path.
 
Method Summary
 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 obj)
          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 FileInputStream 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 isReadable()
          This implementation checks whether the underlying file is marked as readable (and corresponds to an actual file with content, not to a directory).
 
Methods inherited from class org.springframework.core.io.AbstractResource
getFileForLastModifiedCheck, isOpen, lastModified, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

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

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
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 FileInputStream for the underlying file.

Throws:
java.io.IOException - if the stream could not be opened
See Also:
FileInputStream

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()

getFile

public java.io.File getFile()
This implementation returns the underlying File reference.

Specified by:
getFile in interface Resource
Overrides:
getFile in class AbstractResource

createRelative

public 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.

Specified by:
createRelative in interface Resource
Overrides:
createRelative in class AbstractResource
Parameters:
relativePath - the relative path (relative to this resource)
Returns:
the resource handle for the relative resource
See Also:
StringUtils.applyRelativePath(String, String)

getFilename

public java.lang.String getFilename()
This implementation returns the name of the file.

Specified by:
getFilename in interface Resource
Overrides:
getFilename in class AbstractResource
See Also:
File.getName()

getDescription

public java.lang.String getDescription()
This implementation returns a description that includes the absolute path of the file.

See Also:
File.getAbsolutePath()

equals

public boolean equals(java.lang.Object obj)
This implementation compares the underlying File references.

Overrides:
equals in class AbstractResource
See Also:
Resource.getDescription()

hashCode

public int hashCode()
This implementation returns the hash code of the underlying File reference.

Overrides:
hashCode in class AbstractResource
See Also:
Resource.getDescription()