Class MemoryStringWriter

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.Appendable, java.lang.AutoCloseable

    public class MemoryStringWriter
    extends java.io.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
    • Field Summary

      • Fields inherited from class java.io.Writer

        lock
    • Constructor Summary

      Constructors 
      Constructor Description
      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.
    • 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.
      java.lang.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, nullWriter, write, write, write, write
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, 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.
    • Method Detail

      • write

        public void write​(char[] cbuf,
                          int off,
                          int len)
                   throws java.io.IOException
        Write a portion of an array of characters.
        Specified by:
        write in class java.io.Writer
        Parameters:
        cbuf - Array of characters
        off - Offset from which to start writing characters
        len - Number of characters to write
        Throws:
        java.io.IOException - If an I/O error occurs
      • 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 interface java.io.Flushable
        Specified by:
        flush in class java.io.Writer
        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 interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in class java.io.Writer
        Throws:
        java.io.IOException - If an I/O error occurs
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object