/**
* Copyright (c) 2010 Ed Merks and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Ed Merks - Initial API and implementation
*/
package java.io;
import java.io.IOException;
public class ByteArrayOutputStream extends OutputStream
{
protected byte [] bytes;
protected int index;
public ByteArrayOutputStream()
{
this(1024);
}
public ByteArrayOutputStream(int capacity)
{
bytes = new byte[capacity];
}
@Override
public void write(int byteValue) throws IOException
{
if (index >= bytes.length)
{
byte[] newBytes = new byte[bytes.length * 2];
System.arraycopy(bytes, 0, newBytes, 0, bytes.length);
bytes = newBytes;
}
bytes[index++] = (byte)byteValue;
}
public byte[] toByteArray()
{
byte[] result = new byte[index];
System.arraycopy(bytes, 0, result, 0, index);
return result;
}
}