Class SegmentedStringWriter

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

    public final class SegmentedStringWriter
    extends java.io.Writer
    Efficient alternative to StringWriter, based on using segmented internal buffer. Initial input buffer is also recyclable.

    This class is most useful when serializing JSON content as a String: if so, instance of this class can be given as the writer to JsonGenerator.

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.io.Writer append​(char c)  
      java.io.Writer append​(java.lang.CharSequence csq)  
      java.io.Writer append​(java.lang.CharSequence csq, int start, int end)  
      void close()  
      void flush()  
      java.lang.String getAndClear()
      Main access method that will construct a String that contains all the contents, release all internal buffers we may have, and return result String.
      void write​(char[] cbuf)  
      void write​(char[] cbuf, int off, int len)  
      void write​(int c)  
      void write​(java.lang.String str)  
      void write​(java.lang.String str, int off, int len)  
      • Methods inherited from class java.io.Writer

        nullWriter
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SegmentedStringWriter

        public SegmentedStringWriter​(BufferRecycler br)
    • Method Detail

      • append

        public java.io.Writer append​(char c)
        Specified by:
        append in interface java.lang.Appendable
        Overrides:
        append in class java.io.Writer
      • append

        public java.io.Writer append​(java.lang.CharSequence csq)
        Specified by:
        append in interface java.lang.Appendable
        Overrides:
        append in class java.io.Writer
      • append

        public java.io.Writer append​(java.lang.CharSequence csq,
                                     int start,
                                     int end)
        Specified by:
        append in interface java.lang.Appendable
        Overrides:
        append in class java.io.Writer
      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in class java.io.Writer
      • flush

        public void flush()
        Specified by:
        flush in interface java.io.Flushable
        Specified by:
        flush in class java.io.Writer
      • write

        public void write​(char[] cbuf)
        Overrides:
        write in class java.io.Writer
      • write

        public void write​(char[] cbuf,
                          int off,
                          int len)
        Specified by:
        write in class java.io.Writer
      • write

        public void write​(int c)
        Overrides:
        write in class java.io.Writer
      • write

        public void write​(java.lang.String str)
        Overrides:
        write in class java.io.Writer
      • write

        public void write​(java.lang.String str,
                          int off,
                          int len)
        Overrides:
        write in class java.io.Writer
      • getAndClear

        public java.lang.String getAndClear()
        Main access method that will construct a String that contains all the contents, release all internal buffers we may have, and return result String. Note that the method is not idempotent -- if called second time, will just return an empty String.
        Returns:
        String that contains all aggregated content