Package com.amazonaws.util
Class LengthCheckInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- com.amazonaws.internal.SdkFilterInputStream
-
- com.amazonaws.util.LengthCheckInputStream
-
- All Implemented Interfaces:
com.amazonaws.internal.MetricAware
,com.amazonaws.internal.Releasable
,Closeable
,AutoCloseable
public class LengthCheckInputStream extends com.amazonaws.internal.SdkFilterInputStream
Used to perform length check to ensure the number of bytes read from the underlying input stream is the same as the expected total.
-
-
Field Summary
Fields Modifier and Type Field Description static boolean
EXCLUDE_SKIPPED_BYTES
static boolean
INCLUDE_SKIPPED_BYTES
-
Fields inherited from class java.io.FilterInputStream
in
-
-
Constructor Summary
Constructors Constructor Description LengthCheckInputStream(InputStream in, long expectedLength, boolean includeSkipped)
Constructs an input stream that performs length check to ensure the number of bytes read from the underlying input stream is the same as the expected total.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
mark(int readlimit)
int
read()
int
read(byte[] b, int off, int len)
void
reset()
long
skip(long n)
-
Methods inherited from class com.amazonaws.internal.SdkFilterInputStream
abort, abortIfNeeded, available, close, isMetricActivated, markSupported, release
-
Methods inherited from class java.io.FilterInputStream
read
-
Methods inherited from class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, transferTo
-
-
-
-
Field Detail
-
INCLUDE_SKIPPED_BYTES
public static final boolean INCLUDE_SKIPPED_BYTES
- See Also:
- Constant Field Values
-
EXCLUDE_SKIPPED_BYTES
public static final boolean EXCLUDE_SKIPPED_BYTES
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
LengthCheckInputStream
public LengthCheckInputStream(InputStream in, long expectedLength, boolean includeSkipped)
Constructs an input stream that performs length check to ensure the number of bytes read from the underlying input stream is the same as the expected total.- Parameters:
in
- the underlying input streamexpectedLength
- the total length of the data in bytes expected to be read from the underlying input stream; must be non-negative.includeSkipped
- true if bytes skipped are to be considered as part of the data length; false otherwise. Typically, this parameter should be set to false for uploading data to AWS, but set to true for receiving data from AWS.
-
-
Method Detail
-
read
public int read() throws IOException
- Overrides:
read
in classcom.amazonaws.internal.SdkFilterInputStream
- Throws:
AmazonClientException
- if the data length read has exceeded the expected total, or if the total data length is not the same as the expected total.IOException
-
read
public int read(byte[] b, int off, int len) throws IOException
- Overrides:
read
in classcom.amazonaws.internal.SdkFilterInputStream
- Throws:
AmazonClientException
- if the data length read has exceeded the expected total, or if the total data length is not the same as the expected total.IOException
-
mark
public void mark(int readlimit)
- Overrides:
mark
in classcom.amazonaws.internal.SdkFilterInputStream
-
reset
public void reset() throws IOException
- Overrides:
reset
in classcom.amazonaws.internal.SdkFilterInputStream
- Throws:
IOException
-
skip
public long skip(long n) throws IOException
- Overrides:
skip
in classcom.amazonaws.internal.SdkFilterInputStream
- Throws:
AmazonClientException
- ifincludeSkipped
is true and the data length skipped has exceeded the expected total.IOException
-
-