Package net.sf.ehcache.util
Class MemoryEfficientByteArrayOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.ByteArrayOutputStream
-
- net.sf.ehcache.util.MemoryEfficientByteArrayOutputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.io.Flushable,java.lang.AutoCloseable
public final class MemoryEfficientByteArrayOutputStream extends java.io.ByteArrayOutputStreamThis class is designed to minimise the number of System.arraycopy(); methods required to complete. ByteArrayOutputStream in the JDK is tuned for a wide variety of purposes. This sub-class starts with an initial size which is a closer match for ehcache usage.- Version:
- $Id$
- Author:
- Greg Luck
-
-
Constructor Summary
Constructors Constructor Description MemoryEfficientByteArrayOutputStream(int size)Creates a new byte array output stream, with a buffer capacity of the specified size, in bytes.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]getBytes()Gets the bytes.static MemoryEfficientByteArrayOutputStreamserialize(java.io.Serializable serializable)Factory method.static MemoryEfficientByteArrayOutputStreamserialize(java.io.Serializable serializable, int estimatedPayloadSize)Factory method
-
-
-
Method Detail
-
getBytes
public byte[] getBytes()
Gets the bytes.- Returns:
- the underlying byte[], or a copy if the byte[] is oversized
-
serialize
public static MemoryEfficientByteArrayOutputStream serialize(java.io.Serializable serializable, int estimatedPayloadSize) throws java.io.IOException
Factory method- Parameters:
serializable- any Object that implements SerializableestimatedPayloadSize- how many bytes is expected to be in the Serialized representation- Returns:
- a ByteArrayOutputStream with a Serialized object in it
- Throws:
java.io.IOException- if something goes wrong with the Serialization
-
serialize
public static MemoryEfficientByteArrayOutputStream serialize(java.io.Serializable serializable) throws java.io.IOException
Factory method. This method optimises memory by trying to make a better guess than the Java default of 32 bytes by assuming the starting point for the serialized size will be what it was last time this method was called.- Parameters:
serializable- any Object that implements Serializable- Returns:
- a ByteArrayOutputStream with a Serialized object in it
- Throws:
java.io.IOException- if something goes wrong with the Serialization
-
-