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 TypeMethodDescriptionvoid
close()
void
destroy()
Closes the stream and removes the backing file (if present).static Supplier<TempOutputStream>
Creates aTempOutputStream
factory/supplier.void
flush()
long
Returns the data as an InputStreamvoid
write
(byte[] b, int off, int len) void
write
(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:
write
in classOutputStream
- Throws:
IOException
-
write
- Overrides:
write
in classOutputStream
- Throws:
IOException
-
flush
- Specified by:
flush
in interfaceFlushable
- Overrides:
flush
in classOutputStream
- Throws:
IOException
-
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in 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 aTempOutputStream
factory/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
-