Package java.io

Class StringWriter

java.lang.Object
java.io.Writer
java.io.StringWriter
All Implemented Interfaces:
Closeable, Flushable, Appendable, AutoCloseable

public class StringWriter
extends Writer
A specialized Writer that writes characters to a StringBuffer in a sequential manner, appending them in the process. The result can later be queried using the StringWriter(int) or toString() methods.
See Also:
StringReader
  • Field Summary

    Fields inherited from class java.io.Writer

    lock
  • Constructor Summary

    Constructors
    Constructor Description
    StringWriter()
    Constructs a new StringWriter which has a StringBuffer allocated with the default size of 16 characters.
    StringWriter​(int initialSize)
    Constructs a new StringWriter which has a StringBuffer allocated with a size of initialSize characters.
  • Method Summary

    Modifier and Type Method Description
    StringWriter append​(char c)
    Appends the character c to this writer's StringBuffer.
    StringWriter append​(CharSequence csq)
    Appends the character sequence csq to this writer's StringBuffer.
    StringWriter append​(CharSequence csq, int start, int end)
    Appends a subsequence of the character sequence csq to this writer's StringBuffer.
    void close()
    Calling this method has no effect.
    void flush()
    Calling this method has no effect.
    StringBuffer getBuffer()
    Gets a reference to this writer's internal StringBuffer.
    String toString()
    Gets a copy of the contents of this writer as a string.
    void write​(char[] chars, int offset, int count)
    Writes count characters starting at offset in buf to this writer's StringBuffer.
    void write​(int oneChar)
    Writes one character to this writer's StringBuffer.
    void write​(String str)
    Writes the characters from the specified string to this writer's StringBuffer.
    void write​(String str, int offset, int count)
    Writes count characters from str starting at offset to this writer's StringBuffer.

    Methods inherited from class java.io.Writer

    write

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • StringWriter

      public StringWriter()
      Constructs a new StringWriter which has a StringBuffer allocated with the default size of 16 characters. The StringBuffer is also the lock used to synchronize access to this writer.
    • StringWriter

      public StringWriter​(int initialSize)
      Constructs a new StringWriter which has a StringBuffer allocated with a size of initialSize characters. The StringBuffer is also the lock used to synchronize access to this writer.
      Parameters:
      initialSize - the initial size of the target string buffer.
  • Method Details

    • close

      public void close() throws IOException
      Calling this method has no effect. In contrast to most Writer subclasses, the other methods in StringWriter do not throw an IOException if close() has been called.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in class Writer
      Throws:
      IOException - if an error occurs while closing this writer.
    • flush

      public void flush()
      Calling this method has no effect.
      Specified by:
      flush in interface Flushable
      Specified by:
      flush in class Writer
    • getBuffer

      public StringBuffer getBuffer()
      Gets a reference to this writer's internal StringBuffer. Any changes made to the returned buffer are reflected in this writer.
      Returns:
      a reference to this writer's internal StringBuffer.
    • toString

      public String toString()
      Gets a copy of the contents of this writer as a string.
      Overrides:
      toString in class Object
      Returns:
      this writer's contents as a string.
    • write

      public void write​(char[] chars, int offset, int count)
      Writes count characters starting at offset in buf to this writer's StringBuffer.
      Specified by:
      write in class Writer
      Parameters:
      chars - the non-null character array to write.
      offset - the index of the first character in chars to write.
      count - the maximum number of characters to write.
      Throws:
      IndexOutOfBoundsException - if offset < 0 or count < 0, or if offset + count is greater than the size of buf.
    • write

      public void write​(int oneChar)
      Writes one character to this writer's StringBuffer. Only the two least significant bytes of the integer oneChar are written.
      Overrides:
      write in class Writer
      Parameters:
      oneChar - the character to write to this writer's StringBuffer.
    • write

      public void write​(String str)
      Writes the characters from the specified string to this writer's StringBuffer.
      Overrides:
      write in class Writer
      Parameters:
      str - the non-null string containing the characters to write.
    • write

      public void write​(String str, int offset, int count)
      Writes count characters from str starting at offset to this writer's StringBuffer.
      Overrides:
      write in class Writer
      Parameters:
      str - the non-null string containing the characters to write.
      offset - the index of the first character in str to write.
      count - the number of characters from str to write.
      Throws:
      StringIndexOutOfBoundsException - if offset < 0 or count < 0, or if offset + count is greater than the length of str.
    • append

      public StringWriter append​(char c)
      Appends the character c to this writer's StringBuffer. This method works the same way as write(int).
      Specified by:
      append in interface Appendable
      Overrides:
      append in class Writer
      Parameters:
      c - the character to append to the target stream.
      Returns:
      this writer.
    • append

      public StringWriter append​(CharSequence csq)
      Appends the character sequence csq to this writer's StringBuffer. This method works the same way as StringWriter.write(csq.toString()). If csq is null, then the string "null" is written to the target stream.
      Specified by:
      append in interface Appendable
      Overrides:
      append in class Writer
      Parameters:
      csq - the character sequence appended to the target.
      Returns:
      this writer.
    • append

      public StringWriter append​(CharSequence csq, int start, int end)
      Appends a subsequence of the character sequence csq to this writer's StringBuffer. This method works the same way as StringWriter.writer(csq.subsequence(start, end).toString()). If csq is null, then the specified subsequence of the string "null" will be written to the target.
      Specified by:
      append in interface Appendable
      Overrides:
      append in class Writer
      Parameters:
      csq - the character sequence appended to the target.
      start - the index of the first char in the character sequence appended to the target.
      end - the index of the character following the last character of the subsequence appended to the target.
      Returns:
      this writer.
      Throws:
      IndexOutOfBoundsException - if start > end, start < 0, end < 0 or either start or end are greater or equal than the length of csq.