Package org.alfresco.repo.web.scripts
Class TempOutputStream
java.lang.Object
java.io.OutputStream
org.alfresco.repo.web.scripts.TempOutputStream
- All Implemented Interfaces:
Closeable,Flushable,AutoCloseable
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 Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionTempOutputStream(File tempDir, int memoryThreshold, long maxContentSize, boolean encrypt) Creates a TempOutputStream. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()voiddestroy()Closes the stream and removes the backing file (if present).static Supplier<TempOutputStream> Creates aTempOutputStreamfactory/supplier.voidflush()longReturns the data as an InputStreamvoidwrite(byte[] b, int off, int len) voidwrite(int b) Methods inherited from class java.io.OutputStream
nullOutputStream, write
-
Field Details
-
TEMP_FILE_PREFIX
- See Also:
-
-
Constructor Details
-
TempOutputStream
Creates a TempOutputStream.- Parameters:
tempDir- the temporary directory, i.e.isDir == true, that will be used as * parent directory for creating temp file backed streamsmemoryThreshold- the memory threshold in BmaxContentSize- the max content size in Bencrypt- true if temp files should be encrypted
-
-
Method Details
-
toNewInputStream
Returns the data as an InputStream- Throws:
IOException
-
write
- Specified by:
writein classOutputStream- Throws:
IOException
-
write
- Overrides:
writein classOutputStream- Throws:
IOException
-
flush
- Specified by:
flushin interfaceFlushable- Overrides:
flushin classOutputStream- Throws:
IOException
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classOutputStream- Throws:
IOException
-
destroy
Closes the stream and removes the backing file (if present). 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(); }- Throws:
IOException
-
getLength
public long getLength() -
factory
public static Supplier<TempOutputStream> factory(File tempDir, int memoryThreshold, long maxContentSize, boolean encrypt) Creates aTempOutputStreamfactory/supplier.- Parameters:
tempDir- the temporary directory, i.e.isDir == true, that will be used as * parent directory for creating temp file backed streamsmemoryThreshold- the memory threshold in BmaxContentSize- the max content size in Bencrypt- true if temp files should be encrypted
-