Я печати трассировки стека в 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
след.
Пожалуйста, предложите правильный способ для этого.
что, если программа имеет много печатать, поэтому я буду создавать новые писатели каждый раз в течение только Append? Есть ли какой-либо другой класс, чем 'StringWriter', который реализует flush для очистки своего базового буфера? –
Трудно помочь без остального кода ... Возможно, вы можете найти подкласс StringWriter с использованием метода flush, который работает. Или перепишите свой код без StringWriter ... StringBuilder/StringBuffer специально предназначен для сборки строки (StringWriter использует StringBuffer ...), но я не знаю, возможно ли это в вашем коде. – dams