Java StringWriter Example
In this example we are going to see how to use StringWriter
. StringWriter
is a subclass of java.io.Writer
and can be used to write character streams in a String buffer and later can be used to obtain the stream as a String
and even obtain the output buffer as a StringBuffer
.
Let’s see some examples.
1. Using StringWriter
Let’s see how you can use StringWriter
:
StringWriterExample.java:
package com.javacodegeeks.core.string; import java.io.StringWriter; public class StringWriterExample { public static void main(String[] args) { String str1 = "Hello World"; String str2 =" of JavaCodeGeeks"; StringWriter outputWriter = new StringWriter(); outputWriter.write(str1); System.out.println(outputWriter.toString()); outputWriter.write(str2); System.out.println(outputWriter.toString()); outputWriter.append(" "+str1); System.out.println(outputWriter.toString()); } }
This will output :
Hello World
Hello World of JavaCodeGeeks
Hello World of JavaCodeGeeks Hello World
As you can see from the above example, we’ve basically used two StringWriter
class methods : write
and append
which basically do the same thing, they append a string or a single character to the output stream (the string buffer). And then we’ve used toString
to obtain the contents of the output buffer in the form of a String
. Easy!
Let’s see another example. Here you can use write method to write a sub string of the output String
:
StringWriterExample.java:
package com.javacodegeeks.core.string; import java.io.StringWriter; public class StringWriterExample { public static void main(String[] args) { String str1 = "Hello World"; String str2 =" of JavaCodeGeeks"; StringWriter outputWriter = new StringWriter(); outputWriter.write(str1,0,8); System.out.println(outputWriter.toString()); } }
This will output :
Hello Wo
2. Obtain the StringBuffer
Here you can see how you can obtain and use the output buffer of the StringWriter
in the form of a StringBuffer
.
StringWriterExample.java:
package com.javacodegeeks.core.string; import java.io.StringWriter; public class StringWriterExample { public static void main(String[] args) { String str1 = "Hello World"; String str2 =" of JavaCodeGeeks"; StringWriter outputWriter = new StringWriter(); outputWriter.write(str1,0,8); System.out.println(outputWriter.toString()); StringBuffer sbuf = outputWriter.getBuffer(); sbuf.append(str2); System.out.println(outputWriter.toString()); } }
This will output :
Hello Wo
Hello Wo of JavaCodeGeeks
As you can see you can obtain the StringBuffer
and use it normally. The changes will be reflected in the StringWriter
.
3. A simple use case
Here we are going to present a simple use case of StringWriter
. In this example we are going to read file and convert its contents to String
.
Let’s see how :
StringWriterExample.java:
package com.javacodegeeks.core.string; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; import java.io.StringWriter; import java.io.Writer; public class StringWriterExample { public static void main(String[] args) throws IOException { String str1 = stringWriter("F:\\nikos7\\Desktop\\s.txt"); System.out.println(str1); } public static String stringWriter(String fileName) throws IOException { char[] buff = new char[1024]; Writer stringWriter = new StringWriter(); FileInputStream fStream = null; Reader bReader = null; try { fStream = new FileInputStream(fileName); bReader = new BufferedReader(new InputStreamReader(fStream, "UTF-8")); int n; while ((n = bReader.read(buff)) != -1) { stringWriter.write(buff, 0, n); } } finally { bReader.close(); stringWriter.close(); fStream.close(); } return stringWriter.toString(); } }
Ok so in the above program we simple open a file and read chunks of 1024 characters of it at a time. We then write these characters in the StringWriter
. When the loop ends we use toString
to convert the character stream that we’ve read into a String
.
Download Source Code
This was a Java StringWriter Example. You can download the source code of this example here : StringWriterExample.zip