diff options
author | Andreas Fankhauser hiddenalpha.ch | 2022-12-30 01:05:20 +0100 |
---|---|---|
committer | Andreas Fankhauser hiddenalpha.ch | 2022-12-30 01:05:20 +0100 |
commit | b426acc268453ddd342921c53f2e48faac8a0b8f (patch) | |
tree | 67dc63a49c231de8efe339d1ee37e5928a0c0244 /xtra4j-misc/src/main/java/ch/hiddenalpha/xtra4j/octetstream/ByteCountOutputStream.java | |
parent | 8321e3d6f61bbca4570cfafc4ce5bc195a8c60fa (diff) | |
download | xtra4j-wip-setup.zip xtra4j-wip-setup.tar.gz |
Add ByteCountOutputStream and ByteCountInputStreamwip-setup
Diffstat (limited to 'xtra4j-misc/src/main/java/ch/hiddenalpha/xtra4j/octetstream/ByteCountOutputStream.java')
-rw-r--r-- | xtra4j-misc/src/main/java/ch/hiddenalpha/xtra4j/octetstream/ByteCountOutputStream.java | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/xtra4j-misc/src/main/java/ch/hiddenalpha/xtra4j/octetstream/ByteCountOutputStream.java b/xtra4j-misc/src/main/java/ch/hiddenalpha/xtra4j/octetstream/ByteCountOutputStream.java new file mode 100644 index 0000000..1cb9d0d --- /dev/null +++ b/xtra4j-misc/src/main/java/ch/hiddenalpha/xtra4j/octetstream/ByteCountOutputStream.java @@ -0,0 +1,40 @@ +package ch.hiddenalpha.xtra4j.octetstream; + +import java.io.IOException; +import java.io.OutputStream; + + +/** + * {@link OutputStream} decorator to count bytes flowed through the stream. + */ +public class ByteCountOutputStream extends OutputStream { + + private final OutputStream origin; + private long numBytes = 0; + + public ByteCountOutputStream( OutputStream origin ){ + this.origin = origin; + } + + /** @return How many bytes did pass that stream up to now. */ + public long getByteCount() { return numBytes; } + + @Override + public void write( int b ) throws IOException { + numBytes += 1; + origin.write(b); + } + + @Override + public void write( byte[] b, int off, int len ) throws IOException { + numBytes += len; + origin.write(b, off, len); + } + + @Override + public void flush() throws IOException { origin.flush(); } + + @Override + public void close() throws IOException { origin.close(); } + +} |