轉帖地址:http://www.it1352.com/989366.htmlhtml
Question:java
What is a Java StringWriter, and when should I use it?apache
I have read the documentation and looked here, but I do not understand when I should use it.api
Answer:promise
It is a specialized Writer that writes characters to a StringBuffer, and then we use method like toString() to get the string result.ui
When StringWriter is used is that you want to write to a string, but the API is expecting a Writer or a Stream. It is a compromised, you use StringWriter only when you have to, since StringBuffer/StringBuilder to write characters is much more natural and easier,which should be your first choice.this
Here is two of a typical good case to use StringWriterspa
1.Converts the stack trace into String, so that we can log it easily.code
StringWriter sw = new StringWriter();//create a StringWriter PrintWriter pw = new PrintWriter(sw);//create a PrintWriter using this string writer instance t.printStackTrace(pw);//print the stack trace to the print writer(it wraps the string writer sw) String s=sw.toString(); // we can now have the stack trace as a string
2.Another case will be when we need to copy from an InputStream to chars on a Writer so that we can get String later, using Apache commons IOUtils#copy :htm
StringWriter writer = new StringWriter(); IOUtils.copy(inputStream, writer, encoding);//copy the stream into the StringWriter String result = writer.toString();
--END-- 2019年11月3日11:06:45