Я пытался создать класс, который можно установить как Standard Out и который записывает в файл.Пока проблем нет.Однако, когда я пытаюсь записать немного японского в вывод, он не будет отображаться в файлахВсе, что я получаю, это строки "?"персонажи.
Вот так выглядит мой класс OutputStream (я создаю его экземпляр и передаю его «System.setOut (OutputStream)» в моем основном методе).
public class MyStdOutStream extends OutputStream {
private OutputStreamWriter out;
public MyStdOutStream(File file) throws IOException {
out = new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8);
}
@Override
public void close() throws IOException {
out.flush();
out.close();
super.close(); //No idea if this line does anything...
}
@Override
public void write(int nr) throws IOException {
out.write(nr);
}
}
Затем я принимаю ввод через JTextField (во время тестирования это будет другой источник позже) и распечатываю его как с помощью «System.out.println (String)», так и добавляя его кJTextArea.Он отображается как правильный японский в JTextArea, но не в файле.
Кто-нибудь знает, что я делаю неправильно?Я проверил с всеми доступными Charsets в импорте StandardCharsets без успеха.
РЕДАКТИРОВАТЬ: Это назначение, и я не могу использовать ничего, кромеСтандартная библиотека Java (поэтому нет импортированных JAR-файлов)