Class TempOutputStream

java.lang.Object
java.io.OutputStream
org.alfresco.repo.web.scripts.TempOutputStream
All Implemented Interfaces:
Closeable, Flushable, AutoCloseable

public class TempOutputStream extends OutputStream
An output stream implementation that keeps the data in memory if is less then the specified memoryThreshold otherwise it writes it to a temp file.

Close the stream before any call to TempOutputStream.getInputStream().

If deleteTempFileOnClose is false then use proper try-finally patterns to ensure that the temp file is destroyed after it is no longer needed.

   try
   {
      StreamUtils.copy(new BufferedInputStream(new FileInputStream(file)), tempOutputStream);
      tempOutputStream.close();
   }
   finally
   {
       tempOutputStream.destroy();
   }
   
 
  • Field Details

  • Constructor Details

    • TempOutputStream

      public TempOutputStream(File tempDir, int memoryThreshold, long maxContentSize, boolean encrypt, boolean deleteTempFileOnClose)
      Creates a TempOutputStream.
      Parameters:
      tempDir - the temporary directory, i.e. isDir == true, that will be used as * parent directory for creating temp file backed streams
      memoryThreshold - the memory threshold in B
      maxContentSize - the max content size in B
      encrypt - true if temp files should be encrypted
      deleteTempFileOnClose - true if temp files should be deleted on output stream close (useful if we need to cache the content for further reads). If this is false then we need to make sure we call TempOutputStream.destroy to clean up properly.
  • Method Details