Package de.aristaflow.adept2.util.io
Class BufferedRereadableContent
java.lang.Object
de.aristaflow.adept2.util.io.BufferedRereadableContent
- All Implemented Interfaces:
Closeable,AutoCloseable
@Deprecated(since="15.0.0",
forRemoval=true)
public class BufferedRereadableContent
extends Object
implements Closeable
Deprecated, for removal: This API element is subject to removal in a future version.
The
BufferedRereadableContent can be used when the content of an InputStream
needs to be processed multiple times. Depending on its eventual size the whole content of the
input stream is buffered in-memory - up to a certain threshold - or in a temporary file.
The BufferedRereadableContent as well as the provided input streams must be
closed after use! This can be ensured by adhering to the following
template:
try (BufferedRereadableContent input = new BufferedRereadableContent(inputStream))
{
...
try (InputStream is = input.getInputStream())
{
...
}
...
try (InputStream is = input.getInputStream())
{
...
}
...
}
Closing this BufferedRereadableContent will also close the underlying
InputStream (unless it has already been read and closed in the constructor). Also
created streams that have not been closed will also be closed.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static final classDeprecated, for removal: This API element is subject to removal in a future version.The clean-up task deleting the temporary file if appropriate -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final Cleanup<RuntimeException>Deprecated, for removal: This API element is subject to removal in a future version.The clean-up for closing thecreatedStreamsand the temporary file.protected final Collection<Closeable>Deprecated, for removal: This API element is subject to removal in a future version.All streams that have been created by thisBufferedRereadableContent.protected static final intDeprecated, for removal: This API element is subject to removal in a future version.protected final longDeprecated, for removal: This API element is subject to removal in a future version.The size of the content.protected final LoggerDeprecated, for removal: This API element is subject to removal in a future version.The logger for problems with the handling of the created input streams.protected static final DateTimeFormatterDeprecated, for removal: This API element is subject to removal in a future version. -
Constructor Summary
ConstructorsConstructorDescriptionBufferedRereadableContent(InputStream inputStream) Deprecated, for removal: This API element is subject to removal in a future version.Creates a newBufferedRereadableContentand immediately reads the givenInputStream.BufferedRereadableContent(InputStream inputStream, int threshold, String tempFileTag, File tempDir) Deprecated, for removal: This API element is subject to removal in a future version.Creates a newBufferedRereadableContentand immediately reads the givenInputStream. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Deprecated, for removal: This API element is subject to removal in a future version.Releases all resources and deletes the temporary file if one has been created.Deprecated, for removal: This API element is subject to removal in a future version.Returns an input stream for the data.longDeprecated, for removal: This API element is subject to removal in a future version.Returns the total length of the content.
-
Field Details
-
DEFAULT_THRESHOLD
protected static final int DEFAULT_THRESHOLDDeprecated, for removal: This API element is subject to removal in a future version.- See Also:
-
TIMESTAMP_FORMATTER
Deprecated, for removal: This API element is subject to removal in a future version. -
logger
Deprecated, for removal: This API element is subject to removal in a future version.The logger for problems with the handling of the created input streams. -
length
protected final long lengthDeprecated, for removal: This API element is subject to removal in a future version.The size of the content. -
createdStreams
Deprecated, for removal: This API element is subject to removal in a future version.All streams that have been created by thisBufferedRereadableContent. -
cleanup
Deprecated, for removal: This API element is subject to removal in a future version.The clean-up for closing thecreatedStreamsand the temporary file.
-
-
Constructor Details
-
BufferedRereadableContent
Deprecated, for removal: This API element is subject to removal in a future version.Creates a newBufferedRereadableContentand immediately reads the givenInputStream.- Parameters:
inputStream- The input stream to read. This will be closed when its content has been read. If it is already re-readable,it will be closed when closing thisBufferedRereadableContent.- Throws:
IOException- if an I/O error occurs
-
BufferedRereadableContent
public BufferedRereadableContent(InputStream inputStream, int threshold, String tempFileTag, File tempDir) throws IOException Deprecated, for removal: This API element is subject to removal in a future version.Creates a newBufferedRereadableContentand immediately reads the givenInputStream.- Parameters:
inputStream- The input stream to read. This will be closed when its content has been read. If it is already re-readable,it will be closed when closing thisBufferedRereadableContent.threshold- the number of bytes after which to store the content in a file instead; negative values will result in thedefault thresholdtempFileTag- an optional tag that will be incorporated into the name of the temp file if one is created; may be nulltempDir- the directory where temp files should be created; may be null to use the default temp directory of the JVM; will be created if it doesn't exist- Throws:
IOException- if an I/O error occurs
-
-
Method Details
-
getLength
public long getLength()Deprecated, for removal: This API element is subject to removal in a future version.Returns the total length of the content.- Returns:
- the total length of the content
-
getInputStream
Deprecated, for removal: This API element is subject to removal in a future version.Returns an input stream for the data. This method may be called multiple times. The returned stream must be closed properly after use!- Returns:
- an input stream for the data
- Throws:
IOException- if an I/O error occurs
-
close
public void close()Deprecated, for removal: This API element is subject to removal in a future version.Releases all resources and deletes the temporary file if one has been created.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable
-
RereadableContentinstead.