|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.io.InputStream
com.gc.iotools.stream.is.inspection.StatsInputStream
public class StatsInputStream
Gather some statistics of the InputStream passed in the
constructor.
It can be used to read:
Full statistics are available after the stream has been fully processed (by other parts of the application), or after invoking the method close() while partial statistics are available on the fly.
Usage:
StatsInputStream srIstream = new StatsInputStream(originalStream); //performs all the application operation on stream performTasksOnStream(srIstream); srIstream.close(); long size = srIstream.getSize();
| Constructor Summary | |
|---|---|
StatsInputStream(InputStream source)
Constructs an SizeReaderInputStream. |
|
StatsInputStream(InputStream istream,
boolean fullReadOnClose)
Constructs an SizeReaderInputStream and allow to specify
actions to do on close. |
|
StatsInputStream(InputStream istream,
boolean fullReadOnClose,
boolean automaticLog)
Constructs an SizeReaderInputStream and allow to specify
actions to do on close. |
|
StatsInputStream(InputStream istream,
boolean fullReadOnClose,
boolean automaticLog,
StatsInputStream chainStream)
Constructs an SizeReaderInputStream and allow to specify
actions to do on close. |
|
| Method Summary | |
|---|---|
int |
available()
|
void |
close()
Closes the inner stream. |
protected void |
finalize()
|
float |
getAverageBytePerRead()
Returns the average bytes per read. |
float |
getBitRate()
Returns the reading bit rate in KB per second of this single instance. |
String |
getBitRateString()
Returns the reading bit rate formatted with a convenient unit. |
long |
getNumberRead()
Number of calls to int read() ,
int read(byte[]) and int read(byte[],int,int)
methods. |
long |
getSize()
Returns the number of bytes read until now from the internal InputStream or total length of the stream if the
method has been called or EOF was
reached. |
long |
getTime()
Returns the time (in milliseconds) spent until now waiting for reading from the internal InputStream. |
long |
getTime(TimeUnit tu)
Returns the time spent until now waiting for the internal stream to respond. |
long |
getTotalNumberRead()
Total count of calls to int read(),
int read(byte[]) and int read(byte[],int,int)
methods, made by this instance over the subsequent calls. |
long |
getTotalTime(TimeUnit tu)
Returns the total time (in milliseconds) spent until now waiting for reading from the internal InputStream by the instances
(identified by their constructor position). |
boolean |
isFullReadOnClose()
Returns the behavior of the close method. |
void |
logCurrentStatistics()
Logs the current statistics. |
void |
mark(int readlimit)
|
boolean |
markSupported()
|
int |
read()
|
int |
read(byte[] b)
|
int |
read(byte[] b,
int off,
int len)
|
void |
reset()
|
long |
skip(long n)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public StatsInputStream(InputStream source)
Constructs an SizeReaderInputStream. When
close() is called the underlying stream will be closed.
No further read will be done.
source - Stream whose statistics must be calculated.
public StatsInputStream(InputStream istream,
boolean fullReadOnClose)
SizeReaderInputStream and allow to specify
actions to do on close.
istream - Stream whose bytes must be counted.fullReadOnClose - if true after the close the inner stream is read
completely and the effective size of the inner stream is
calculated.
public StatsInputStream(InputStream istream,
boolean fullReadOnClose,
boolean automaticLog)
Constructs an SizeReaderInputStream and allow to specify
actions to do on close.
If automaticLog is true the statistics will be written
when the StatsInputStream is closed or finalized.
istream - Stream whose bytes must be counted.fullReadOnClose - if true after the close the inner stream is read
completely and the effective size of the inner stream is
calculated.automaticLog - if true statistics will be automatically
written when the stream is closed or finalized.
public StatsInputStream(InputStream istream,
boolean fullReadOnClose,
boolean automaticLog,
StatsInputStream chainStream)
Constructs an SizeReaderInputStream and allow to specify
actions to do on close.
If automaticLog is true the statistics will be written
when the StatsInputStream is closed or finalized.
Indicates another StatsInputStream to chain with. The aim
is to test performances of a single InputStream in a chain
of multiple InputStreams. You should put the
InputStream to be tested between two
StatsInputStream and chain the two together.
InputStream source = //source of data
StatsInputStream sourceStats = new StatsInputStream(source);
InputStream toBeTested = new InputStreamToBeTested(stis);
StatsInputStream wrapperStis=new StatsInputStream(toBeTested, false, false, sourceStats);
This will allow to produce statistics of the single
InputStream to be tested, in a way independent from the
source. Times spent will be the difference between the times from the
source and times on the final wrapper.
istream - Stream whose bytes must be counted.fullReadOnClose - if true after the close the inner stream is read
completely and the effective size of the inner stream is
calculated.automaticLog - if true statistics will be automatically
written when the stream is closed or finalized.chainStream - The InputStream to chain.| Method Detail |
|---|
public int available()
throws IOException
available in class InputStreamIOException
public void close()
throws IOException
fullReadOnClose was set in the
constructor it also count all the bytes of the underlying stream.
close in interface Closeableclose in class InputStreamIOException - if an I/O error occurs reading the whole content of the
stream.InputStream.close()
protected void finalize()
throws Throwable
finalize in class ObjectThrowablepublic float getAverageBytePerRead()
Returns the average bytes per read.
If this parameter is near 1 means that too many calls are made to read
the InputStream bringing a loss of performances for large
amount of data. Access to this InputStream should be made
trough a BufferedInputStream with a reasonable buffer
size.
WARN: This measure is not accurate in case of mark and reset.
public float getBitRate()
public String getBitRateString()
public long getNumberRead()
int read() ,
int read(byte[]) and int read(byte[],int,int)
methods.
public long getSize()
Returns the number of bytes read until now from the internal
InputStream or total length of the stream if the
method has been called or EOF was
reached.
close()
Calculation refers to the original size of the internal
InputStream. If mark(int) and
reset() are called, the extra data read after the
reset() is not taken in account, until the
mark position is reached again.
public long getTime()
Returns the time (in milliseconds) spent until now waiting for reading
from the internal InputStream.
public long getTime(TimeUnit tu)
Returns the time spent until now waiting for the internal stream to respond.
tu - Unit to measure the time.
public long getTotalNumberRead()
int read(),
int read(byte[]) and int read(byte[],int,int)
methods, made by this instance over the subsequent calls.
public long getTotalTime(TimeUnit tu)
Returns the total time (in milliseconds) spent until now waiting for
reading from the internal InputStream by the instances
(identified by their constructor position).
tu - Unit to measure the time.
public boolean isFullReadOnClose()
public void logCurrentStatistics()
public void mark(int readlimit)
mark in class InputStreampublic boolean markSupported()
markSupported in class InputStream
public int read()
throws IOException
read in class InputStreamIOException
public int read(byte[] b)
throws IOException
read in class InputStreamIOException
public int read(byte[] b,
int off,
int len)
throws IOException
read in class InputStreamIOException
public void reset()
throws IOException
reset in class InputStreamIOException
public long skip(long n)
throws IOException
skip in class InputStreamIOException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||