summaryrefslogtreecommitdiff
path: root/XMPCore/src/com/adobe/xmp/impl/CountOutputStream.java
diff options
context:
space:
mode:
Diffstat (limited to 'XMPCore/src/com/adobe/xmp/impl/CountOutputStream.java')
-rw-r--r--XMPCore/src/com/adobe/xmp/impl/CountOutputStream.java79
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