Table des matières
Le Tutoriel de Java StringWriter
View more Tutorials:


StringWriter est une sous-classe de Writer qui gère un objet StringBuffer. Les caractères écrits dans StringWriter seront ajoutés (append) à l'objet StringBuffer qu'il gère.

La classe StringWriter n'utilise pas d'opérations I/O ou Network (réseau), vous pouvez donc l'utiliser sans la fermer.

StringWriter constructor
StringWriter()
StringWriter(int initialSize)
Outre ces méthodes héritées de sa classe parente, StringWriter dispose également de quelques méthodes plus remarquables, notamment:
String toString() | Renvoie String de buffer. |
StringBuffer getBuffer() | Renvoie l'objet StringBuffer que StringWriter gère actuellement. |
StringWriter append( char c) | Ajoute un caractère à buffer, comme pour convoquer la méthode StringWriter.write(char), mais cette méthode renvoie l'actuel objet StringWriter, Cela permet convoquer une autre méthode de StringWriter plutôt que de terminer par un point-virgule ( ; ) |
StringWriter append( CharSequence csq) | Similaire à la méthode StringWriter.write(CharSequence), mais renvoie l'actuel objet StringWriter. |
StringWriter append( CharSequence csq, int start, int end) | Similaire à la méthode StringWriter.write(CharSequence,int,int), mais renvoie l'actuel objet StringWriter. |
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
Habituellement, lorsqu'une exception se produit, vous voyez souvent des informations "Stack Trace" imprimées à l'écran de Console, comment obtenir ce contenu sous forme de 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)