betacode

Руководство Java StringWriter

View more Tutorials:

Сайт бесплатного изучения языков:
Следуйте за нами на нашей фан-странице, чтобы получать уведомления каждый раз, когда появляются новые статьи. Facebook

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)

View more Tutorials: