Interface FileCache

All Known Implementing Classes:
LRUFileCache

public interface FileCache
A cache of Files.

The cache uses application-chosen keys.

To check presence in the cache, use getFile(java.lang.String).

To put a new InputStream in the cache, use putFile(String, InputStream). Or if you'd like a File object into which to write some data, get one using getTempFile(), put the actual binary in it, then pass this file to putFile(String, File).

See Also:
  • Method Details

    • getSize

      long getSize()
      Gets the size of the cache, in bytes.
    • getNumberOfItems

      int getNumberOfItems()
      Gets the number of items in the cache.
    • getTempFile

      File getTempFile() throws IOException
      Creates a temporary file.
      Throws:
      IOException
    • putFile

      File putFile(String key, InputStream in) throws IOException
      Puts a file in the cache.
      Parameters:
      key - the cache key
      in - the input stream to cache (closed afterwards)
      Returns:
      the cached file
      Throws:
      IllegalArgumentException - if the key is illegal
      IOException
    • putFile

      File putFile(String key, File file) throws IOException
      Puts a file in the cache.

      The file must have been created through getTempFile(). The file is "given" to this method, who will delete it or rename it.

      Parameters:
      key - the cache key
      file - the file to cache
      Returns:
      the cached file
      Throws:
      IllegalArgumentException - if the key is illegal
      IOException
    • getFile

      File getFile(String key)
      Gets a file from the cache.

      A returned file will never be deleted from the filesystem while the returned file object is still referenced, although it may be purged from the cache.

      Parameters:
      key - the cache key
      Returns:
      the cached file, or null if absent
    • clear

      void clear()
      Clears the cache.

      Files will not be deleted from the filesystm while the returned file objects are still referenced.