devstory

Le Tutoriel de Java StringWriter

  1. StringWriter
  2. Examples

1. StringWriter

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.

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
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)

Tutoriels Java IO

Show More