diff options
Diffstat (limited to 'XMPCore/src/com/adobe/xmp/impl/CountOutputStream.java')
-rw-r--r-- | XMPCore/src/com/adobe/xmp/impl/CountOutputStream.java | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/XMPCore/src/com/adobe/xmp/impl/CountOutputStream.java b/XMPCore/src/com/adobe/xmp/impl/CountOutputStream.java new file mode 100644 index 0000000..ded1296 --- /dev/null +++ b/XMPCore/src/com/adobe/xmp/impl/CountOutputStream.java @@ -0,0 +1,79 @@ +// ================================================================================================= +// ADOBE SYSTEMS INCORPORATED +// Copyright 2006 Adobe Systems Incorporated +// All Rights Reserved +// +// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms +// of the Adobe license agreement accompanying it. +// ================================================================================================= + +package com.adobe.xmp.impl; + +import java.io.IOException; +import java.io.OutputStream; + + +/** + * An <code>OutputStream</code> that counts the written bytes. + * + * @since 08.11.2006 + */ +public final class CountOutputStream extends OutputStream +{ + /** the decorated output stream */ + private final OutputStream out; + /** the byte counter */ + private int bytesWritten = 0; + + + /** + * Constructor with providing the output stream to decorate. + * @param out an <code>OutputStream</code> + */ + CountOutputStream(OutputStream out) + { + this.out = out; + } + + + /** + * Counts the written bytes. + * @see java.io.OutputStream#write(byte[], int, int) + */ + public void write(byte[] buf, int off, int len) throws IOException + { + out.write(buf, off, len); + bytesWritten += len; + } + + + /** + * Counts the written bytes. + * @see java.io.OutputStream#write(byte[]) + */ + public void write(byte[] buf) throws IOException + { + out.write(buf); + bytesWritten += buf.length; + } + + + /** + * Counts the written bytes. + * @see java.io.OutputStream#write(int) + */ + public void write(int b) throws IOException + { + out.write(b); + bytesWritten++; + } + + + /** + * @return the bytesWritten + */ + public int getBytesWritten() + { + return bytesWritten; + } +}
\ No newline at end of file |