The StringWriter
class in Java is a subclass of the Writer
abstract class that is used to write character streams into a String
buffer instead of writing to a file or console. It allows you to create a String
object that can be manipulated just like any other String
in Java.
Here’s an example of how to use the StringWriter
class to write characters to a String
buffer:
import java.io.StringWriter; public class StringWriterExample { public static void main(String[] args) { StringWriter stringWriter = new StringWriter(); stringWriter.write("Hello"); stringWriter.write(" "); stringWriter.write("World!"); String result = stringWriter.toString(); System.out.println(result); // Output: Hello World! } }
In this example, we create a new StringWriter
object and use its write()
method to write the strings “Hello” and “World!” to the buffer. We then use the toString()
method to convert the contents of the buffer to a String
, which we print to the console.
The StringWriter
class also provides additional methods for manipulating the contents of the buffer, such as flush()
, close()
, append()
, and getBuffer()
. These methods can be used to perform operations such as clearing the buffer, appending additional characters to it, or obtaining a reference to the underlying StringBuffer
object.
Java StringWriter class declaration:
The StringWriter
class in Java is declared in the java.io
package and is a subclass of the Writer
abstract class. Here’s the declaration of the StringWriter
class:
public class StringWriter extends Writer { // Constructors public StringWriter(); public StringWriter(int initialSize); // Methods public StringBuffer getBuffer(); public String toString(); public void flush(); public void close(); }
As you can see, the StringWriter
class provides two constructors, one with no arguments and another that takes an integer argument representing the initial size of the buffer.
The class also provides several methods, including getBuffer()
, which returns a reference to the underlying StringBuffer
object, toString()
, which returns the contents of the buffer as a String
, and flush()
and close()
, which are used to flush and close the writer, respectively.
Additionally, since StringWriter
is a subclass of Writer
, it also provides implementations for the abstract methods defined in the Writer
class, such as write(char[], int, int)
and flush()
.
Methods of StringWriter class:
The StringWriter
class in Java provides several methods for writing to and manipulating the underlying StringBuffer
object. Here are some of the most commonly used methods:
write(int c)
– writes a single character to the bufferwrite(char[] cbuf, int off, int len)
– writes a portion of an array of characters to the bufferwrite(String str)
– writes a string to the bufferappend(char c)
– appends a single character to the bufferappend(CharSequence csq)
– appends a character sequence to the bufferappend(CharSequence csq, int start, int end)
– appends a portion of a character sequence to the bufferflush()
– flushes the writer, which will cause any buffered output to be written to the underlyingStringBuffer
close()
– closes the writer and releases any resources associated with ittoString()
– returns the contents of the buffer as aString
getBuffer()
– returns a reference to the underlyingStringBuffer
object
These methods can be used to write to the buffer, append to it, flush it, or close the writer. Additionally, you can use the toString()
method to obtain the contents of the buffer as a String
, and the getBuffer()
method to obtain a reference to the underlying StringBuffer
object.
Java StringWriter Example:
Sure, here’s an example of using Java’s StringWriter
class:
import java.io.StringWriter; import java.io.PrintWriter; public class StringWriterExample { public static void main(String[] args) { try { // Create a new StringWriter object StringWriter sw = new StringWriter(); // Create a PrintWriter object with the StringWriter as its destination PrintWriter pw = new PrintWriter(sw); // Write some text to the PrintWriter pw.println("Hello, world!"); pw.println("This is an example of using a StringWriter in Java."); // Flush the PrintWriter to ensure all text is written to the StringWriter pw.flush(); // Retrieve the contents of the StringWriter as a string String result = sw.toString(); // Print the contents of the StringWriter System.out.println(result); } catch (Exception e) { e.printStackTrace(); } } }
In this example, we create a new StringWriter
object, and then create a PrintWriter
object with the StringWriter
as its destination. We write some text to the PrintWriter
, flush it to ensure all the text is written to the StringWriter
, and then retrieve the contents of the StringWriter
as a string using the toString()
method. Finally, we print the contents of the StringWriter
to the console.