FileDocCategorySizeDatePackage
StringWriter.javaAPI DocJava SE 6 API6034Tue Jun 10 00:25:34 BST 2008java.io

StringWriter

public class StringWriter extends Writer
A character stream that collects its output in a string buffer, which can then be used to construct a string.

Closing a StringWriter has no effect. The methods in this class can be called after the stream has been closed without generating an IOException.

version
1.26, 05/11/17
author
Mark Reinhold
since
JDK1.1

Fields Summary
private StringBuffer
buf
Constructors Summary
public StringWriter()
Create a new string writer using the default initial string-buffer size.

	buf = new StringBuffer();
	lock = buf;
    
public StringWriter(int initialSize)
Create a new string writer using the specified initial string-buffer size.

param
initialSize The number of char values that will fit into this buffer before it is automatically expanded
throws
IllegalArgumentException If initialSize is negative

	if (initialSize < 0) {
	    throw new IllegalArgumentException("Negative buffer size");
	}
	buf = new StringBuffer(initialSize);
	lock = buf;
    
Methods Summary
public java.io.StringWriterappend(java.lang.CharSequence csq)
Appends the specified character sequence to this writer.

An invocation of this method of the form out.append(csq) behaves in exactly the same way as the invocation

out.write(csq.toString()) 

Depending on the specification of toString for the character sequence csq, the entire sequence may not be appended. For instance, invoking the toString method of a character buffer will return a subsequence whose content depends upon the buffer's position and limit.

param
csq The character sequence to append. If csq is null, then the four characters "null" are appended to this writer.
return
This writer
since
1.5

	if (csq == null)
	    write("null");
	else
	    write(csq.toString());
    	return this;
    
public java.io.StringWriterappend(java.lang.CharSequence csq, int start, int end)
Appends a subsequence of the specified character sequence to this writer.

An invocation of this method of the form out.append(csq, start, end) when csq is not null, behaves in exactly the same way as the invocation

out.write(csq.subSequence(start, end).toString()) 

param
csq The character sequence from which a subsequence will be appended. If csq is null, then characters will be appended as if csq contained the four characters "null".
param
start The index of the first character in the subsequence
param
end The index of the character following the last character in the subsequence
return
This writer
throws
IndexOutOfBoundsException If start or end are negative, start is greater than end, or end is greater than csq.length()
since
1.5

	CharSequence cs = (csq == null ? "null" : csq);
	write(cs.subSequence(start, end).toString());
    	return this;
    
public java.io.StringWriterappend(char c)
Appends the specified character to this writer.

An invocation of this method of the form out.append(c) behaves in exactly the same way as the invocation

out.write(c) 

param
c The 16-bit character to append
return
This writer
since
1.5

	write(c);
	return this;
    
public voidclose()
Closing a StringWriter has no effect. The methods in this class can be called after the stream has been closed without generating an IOException.

    
public voidflush()
Flush the stream.

 
    
public java.lang.StringBuffergetBuffer()
Return the string buffer itself.

return
StringBuffer holding the current buffer value.

	return buf;
    
public java.lang.StringtoString()
Return the buffer's current value as a string.

	return buf.toString();
    
public voidwrite(int c)
Write a single character.

	buf.append((char) c);
    
public voidwrite(char[] cbuf, int off, int len)
Write a portion of an array of characters.

param
cbuf Array of characters
param
off Offset from which to start writing characters
param
len Number of characters to write

        if ((off < 0) || (off > cbuf.length) || (len < 0) ||
            ((off + len) > cbuf.length) || ((off + len) < 0)) {
            throw new IndexOutOfBoundsException();
        } else if (len == 0) {
            return;
        }
        buf.append(cbuf, off, len);
    
public voidwrite(java.lang.String str)
Write a string.

	buf.append(str);
    
public voidwrite(java.lang.String str, int off, int len)
Write a portion of a string.

param
str String to be written
param
off Offset from which to start writing characters
param
len Number of characters to write

	buf.append(str.substring(off, off + len));