Package org.jfree.report.util
Class MemoryByteArrayOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- org.jfree.report.util.MemoryByteArrayOutputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
public class MemoryByteArrayOutputStream extends java.io.OutputStream
A string writer that is able to write large amounts of data. The original StringWriter contained in Java doubles its buffersize everytime the buffer overflows. This is nice with small amounts of data, but awfull for huge buffers.- Author:
- Thomas Morgner
-
-
Constructor Summary
Constructors Constructor Description MemoryByteArrayOutputStream()
Create a new character-stream writer whose critical sections will synchronize on the writer itself.MemoryByteArrayOutputStream(int bufferSize, int maximumBufferIncrement)
Create a new character-stream writer whose critical sections will synchronize on the writer itself.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Close the stream, flushing it first.void
flush()
Flush the stream.int
getLength()
byte[]
getRaw()
byte[]
toByteArray()
void
write(byte[] b)
Writesb.length
bytes from the specified byte array to this output stream.void
write(byte[] cbuf, int off, int len)
Write a portion of an array of characters.void
write(int b)
Writes the specified byte to this output stream.
-
-
-
Constructor Detail
-
MemoryByteArrayOutputStream
public MemoryByteArrayOutputStream()
Create a new character-stream writer whose critical sections will synchronize on the writer itself.
-
MemoryByteArrayOutputStream
public MemoryByteArrayOutputStream(int bufferSize, int maximumBufferIncrement)
Create a new character-stream writer whose critical sections will synchronize on the writer itself.
-
-
Method Detail
-
write
public void write(byte[] cbuf, int off, int len) throws java.io.IOException
Write a portion of an array of characters.- Overrides:
write
in classjava.io.OutputStream
- Parameters:
cbuf
- Array of charactersoff
- Offset from which to start writing characterslen
- Number of characters to write- Throws:
java.io.IOException
- If an I/O error occurs
-
write
public void write(byte[] b) throws java.io.IOException
Writesb.length
bytes from the specified byte array to this output stream. The general contract forwrite(b)
is that it should have exactly the same effect as the callwrite(b, 0, b.length)
.- Overrides:
write
in classjava.io.OutputStream
- Parameters:
b
- the data.- Throws:
java.io.IOException
- if an I/O error occurs.- See Also:
OutputStream.write(byte[], int, int)
-
write
public void write(int b) throws java.io.IOException
Writes the specified byte to this output stream. The general contract forwrite
is that one byte is written to the output stream. The byte to be written is the eight low-order bits of the argumentb
. The 24 high-order bits ofb
are ignored. Subclasses ofOutputStream
must provide an implementation for this method.- Specified by:
write
in classjava.io.OutputStream
- Parameters:
b
- thebyte
.- Throws:
java.io.IOException
- if an I/O error occurs. In particular, anIOException
may be thrown if the output stream has been closed.
-
flush
public void flush() throws java.io.IOException
Flush the stream. If the stream has saved any characters from the various write() methods in a buffer, write them immediately to their intended destination. Then, if that destination is another character or byte stream, flush it. Thus one flush() invocation will flush all the buffers in a chain of Writers and OutputStreams. If the intended destination of this stream is an abstraction provided by the underlying operating system, for example a file, then flushing the stream guarantees only that bytes previously written to the stream are passed to the operating system for writing; it does not guarantee that they are actually written to a physical device such as a disk drive.- Specified by:
flush
in interfacejava.io.Flushable
- Overrides:
flush
in classjava.io.OutputStream
- Throws:
java.io.IOException
- If an I/O error occurs
-
close
public void close() throws java.io.IOException
Close the stream, flushing it first. Once a stream has been closed, further write() or flush() invocations will cause an IOException to be thrown. Closing a previously-closed stream, however, has no effect.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.io.OutputStream
- Throws:
java.io.IOException
- If an I/O error occurs
-
toByteArray
public byte[] toByteArray()
-
getLength
public int getLength()
-
getRaw
public byte[] getRaw()
-
-