Я пытаюсь написать программу, которая перенаправляет System.out на JTextArea (это не должно быть JTextArea), но когда я вызываю System.out.println (" ! Test ") выход в текстовую область, как так:Java - странное поведение в PrintStream с пользовательским OutputStream
\n
st!
\n
код для моего OutputStream:
package gui;
import java.awt.*;
import java.io.*;
import javax.swing.text.*;
public class LogOutputStream extends OutputStream
{
public void write(final int b) throws IOException
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
write0(b);
}
});
}
public void write(final byte[] b, final int off, final int len)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
write0(b, off, len);
}
});
}
public void write(final byte[] b)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
write0(b);
}
});
}
private void write0(int b)
{
Document doc = FernflowerGUI.frame.textArea.getDocument();
try
{
doc.insertString(doc.getLength(), String.valueOf((char)b), null);
}
catch(BadLocationException impossible)
{
}
}
private void write0(byte[] b, int off, int len)
{
Document doc = FernflowerGUI.frame.textArea.getDocument();
try
{
doc.insertString(doc.getLength(), new String(b, off, len), null);
}
catch(BadLocationException impossible)
{
}
}
private void write0(byte[] b)
{
write0(b, 0, b.length);
}
}
код, который создает PrintStream:
PrintStream ps = new PrintStream(new LogOutputStream(), true);
Может ли кто-нибудь сказать мне, что происходит на Земле?
Этот код показывает ошибки компиляции здесь. Чтобы лучше помочь, опубликуйте [SSCCE] (http://sscce.org/). –
Как называется функция записи? Каковы его аргументы? – Zyerah
Является ли '\ n' показанным дословно? Каков тип, возвращаемый 'getDocument()', и как он предназначен для обработки символов перевода строки? –