我使用以下代码将Stack Trace打印到JTextArea
:
try
{
throw new IOException();
}
catch(IOException e)
{
e.printStackTrace(pw);
ta1.append(sw.toString());
}
pw.flush();
sw.flush();
try
{
throw new SQLException();
}
catch(SQLException e)
{
e.printStackTrace(pw);
ta1.append(sw.toString());
}
打印出2 IOException
个跟踪和1 SQLExeption
个跟踪。
为什么不把字符串写出来?
我想要1 IOException
跟踪和1 SQLExeption
跟踪。
请建议正确的方法。
答案 0 :(得分:1)
flush
的{{1}}方法无效!
StringWriter
方法与flush
兼容。
java.io.Writer
来源:
StringWriter
/**
* Flush the stream.
*/
public void flush() {
}
调用PrintWriter
StringWriter
方法...
flush
来源:
PrintWriter
因此,如果您要清除/**
* Flushes the stream.
* @see #checkError()
*/
public void flush() {
try {
synchronized (lock) {
ensureOpen();
out.flush();
}
}
catch (IOException x) {
trouble = true;
}
}
和pw
,则不应使用sw
方法。你需要创建一个新的。
见: