blob: ded129657048b89f74d2923de65dd966a20fb0be [file] [log] [blame]
// =================================================================================================
// 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;
}
}