Mục lục
Hướng dẫn và ví dụ Java StringWriter
Xem thêm các chuyên mục:

Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất.
Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi.


StringWriter là một lớp con của Writer, nó quản lý một đối tượng StringBuffer. Các ký tự được ghi vào StringWriter sẽ được nối (append) vào đối tượng StringBuffer mà nó đang quản lý.

Lớp StringWriter không sử dụng các hoạt động I/O hoặc Network (mạng) vì vậy bạn có thể sử dụng nó mà không cần đóng nó lại.

StringWriter constructor
StringWriter()
StringWriter(int initialSize)
Ngoài các phương thức được thừa kế từ lớp cha của nó, StringWriter cũng có thêm một vài phương thức đáng chú ý của riêng nó, bao gồm:
String toString() | Trả về String của buffer. |
StringBuffer getBuffer() | Trả về đối tượng StringBuffer mà StringWriter hiện tại đang quản lý. |
StringWriter append( char c) |
Nối một ký tự vào buffer, giống như gọi phương thức StringWriter.write(char), nhưng phương thức này trả về đối tượng StringWriter hiện tại, điều này cho phép gọi tiếp một phương thức khác của StringWriter thay vì kết thúc bởi dấu chấm phẩy ( ; ) |
StringWriter append( CharSequence csq) |
Giống với phương thức StringWriter.write(CharSequence), nhưng trả về đối tượng StringWriter hiện tại. |
StringWriter append( CharSequence csq, int start, int end) |
Giống với phương thức StringWriter.write(CharSequence,int,int), nhưng trả về đối tượng StringWriter hiện tại. |
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
Thông thường khi một ngoại lệ (Exception) xẩy ra, bạn thường nhìn thấy thông tin "Stack Trace" được in ra màn hình Console, làm sao có được nội dung này như một 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)