org.pentaho.reporting.engine.classic.core.util
Class MemoryStringWriter

java.lang.Object
  extended by java.io.Writer
      extended by org.pentaho.reporting.engine.classic.core.util.MemoryStringWriter
All Implemented Interfaces:
Closeable, Flushable, Appendable

public class MemoryStringWriter
extends Writer

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
MemoryStringWriter()
          Create a new character-stream writer whose critical sections will synchronize on the writer itself.
MemoryStringWriter(int bufferSize)
          Create a new character-stream writer whose critical sections will synchronize on the writer itself.
MemoryStringWriter(int bufferSize, int maximumBufferIncrement)
           
 
Method Summary
 void close()
          Close the stream, flushing it first.
 MemoryStringReader createReader()
           
 void flush()
          Flush the stream.
 int getCursor()
           
 String toString()
           
 void write(char[] cbuf, int off, int len)
          Write a portion of an array of characters.
 
Methods inherited from class java.io.Writer
append, append, append, write, write, write, write
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MemoryStringWriter

public MemoryStringWriter()
Create a new character-stream writer whose critical sections will synchronize on the writer itself.


MemoryStringWriter

public MemoryStringWriter(int bufferSize)
Create a new character-stream writer whose critical sections will synchronize on the writer itself.


MemoryStringWriter

public MemoryStringWriter(int bufferSize,
                          int maximumBufferIncrement)
Method Detail

write

public void write(char[] cbuf,
                  int off,
                  int len)
           throws IOException
Write a portion of an array of characters.

Specified by:
write in class Writer
Parameters:
cbuf - Array of characters
off - Offset from which to start writing characters
len - Number of characters to write
Throws:
IOException - If an I/O error occurs

flush

public void flush()
           throws 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 interface Flushable
Specified by:
flush in class Writer
Throws:
IOException - If an I/O error occurs

close

public void close()
           throws 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 interface Closeable
Specified by:
close in class Writer
Throws:
IOException - If an I/O error occurs

getCursor

public int getCursor()

createReader

public MemoryStringReader createReader()

toString

public String toString()
Overrides:
toString in class Object