Руководство Java StringWriter
1. StringWriter
StringWriter - это подкласс Writer, который управляет объектом StringBuffer. Символы, записанные в StringWriter, будут добавлены (append) к объекту StringBuffer, которым он управляет.
Класс StringWriter не использует операции I/O или Network (сетевые), поэтому вы можете использовать его, не закрывая.
StringWriter constructor
StringWriter()
StringWriter(int initialSize)
Помимо методов, унаследованных от своего родительского класса, StringWriter также имеет несколько более заметных собственных методов, в том числе:
String toString() | Возвращает String из buffer. |
StringBuffer getBuffer() | Возвращает объект StringBuffer, которым в данный момент управляет StringWriter. |
StringWriter append(
char c) | Добавляет символ в buffer - то же самое, что вызывает метод StringWriter.write(char), но этот метод возвращает текущий объект StringWriter. Это позволяет вызвать другой метод StringWriter вместо того, чтобы заканчиваться точкой с запятой ( ; ) |
StringWriter append(
CharSequence csq) | Аналогично методу StringWriter.write(CharSequence), но возвращает текущий объект StringWriter. |
StringWriter append(
CharSequence csq, int start, int end) | Аналогично методу StringWriter.write(CharSequence,int,int), но возвращает текущий объект StringWriter. |
2. Examples
StringWriterEx1.java
package org.o7planning.stringwriter.ex;
import java.io.StringWriter;
public class StringWriterEx1 {
public static void main(String[] args) {
StringWriter sw = new StringWriter();
sw.write("Java Tutorial");
sw.append("\n").append("C# Tutorial").append("\n").append("Python Tutorial");
String s = sw.toString();
System.out.println(s);
}
}
Output:
Java Tutorial
C# Tutorial
Python Tutorial
Обычно, когда возникает исключение (Exception), вы часто видите информацию "Stack Trace", напечатанную на экране Console, как получить это содержимое в виде String?
StringWriterEx3.java
package org.o7planning.stringwriter.ex;
import java.io.PrintWriter;
import java.io.StringWriter;
public class StringWriterEx3 {
public static void main(String[] args) {
try {
int a = 100/0; // Exception occur here
} catch(Exception e) {
String s = getStackTrace(e);
System.err.println(s);
}
}
public static String getStackTrace(Throwable t) {
StringWriter writer = new StringWriter();
// Create PrintWriter via PrintWriter(Writer) constructor.
PrintWriter pw = new PrintWriter(writer);
// Call method: Throwable.printStackTrace(PrintWriter)
t.printStackTrace(pw);
pw.close();
String s = writer.getBuffer().toString();
return s;
}
}
Output:
java.lang.ArithmeticException: / by zero
at org.o7planning.stringwriter.ex.StringWriterEx5.main(StringWriterEx5.java:10)
GetStackTraceEx.java
package org.o7planning.printwriter.ex;
import java.io.PrintWriter;
import java.io.StringWriter;
public class GetStackTraceEx {
public static void main(String[] args) {
try {
int a = 100/0; // Exception occur here
} catch(Exception e) {
String s = getStackTrace(e);
System.err.println(s);
}
}
public static String getStackTrace(Throwable t) {
StringWriter stringWriter = new StringWriter();
// Create PrintWriter via PrintWriter(Writer) constructor.
PrintWriter pw = new PrintWriter(stringWriter);
// Call method: Throwable.printStackTrace(PrintWriter)
t.printStackTrace(pw);
pw.close();
String s = stringWriter.getBuffer().toString();
return s;
}
}
Output:
java.lang.ArithmeticException: / by zero
at org.o7planning.printwriter.ex.GetStackTraceEx.main(GetStackTraceEx.java:10)
Руководства Java IO
- Руководство Java CharArrayWriter
- Руководство Java FilterReader
- Руководство Java FilterWriter
- Руководство Java PrintStream
- Руководство Java BufferedReader
- Руководство Java BufferedWriter
- Руководство Java StringReader
- Руководство Java StringWriter
- Руководство Java PipedReader
- Руководство Java LineNumberReader
- Руководство Java PushbackReader
- Руководство Java PrintWriter
- Руководство Java IO Binary Streams
- Руководство Java IO Character Streams
- Руководство Java BufferedOutputStream
- Руководство Java ByteArrayOutputStream
- Руководство Java DataOutputStream
- Руководство Java PipedInputStream
- Руководство Java OutputStream
- Руководство Java ObjectOutputStream
- Руководство Java PushbackInputStream
- Руководство Java SequenceInputStream
- Руководство Java BufferedInputStream
- Руководство Java Reader
- Руководство Java Writer
- Руководство Java FileReader
- Руководство Java FileWriter
- Руководство Java CharArrayReader
- Руководство Java ByteArrayInputStream
- Руководство Java DataInputStream
- Руководство Java ObjectInputStream
- Руководство Java InputStreamReader
- Руководство Java OutputStreamWriter
- Руководство Java InputStream
- Руководство Java FileInputStream
Show More