我一直在尝试创建一个可以设置为标准输出并写入文件的类。到目前为止,没问题。但是,当我试图在输出中写入一些日语时,它不会显示在文件中。我只得到一行角色。
这就是OutputStream类的样子(我创建了它的一个实例并将其交给main方法中的“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中显示为正确的日语,但在文件中不显示。
有人知道我做错了什么吗?我测试过
全部的
标准字符集中的可用字符集导入未成功。
编辑:
这是一个赋值,除了标准的Java库之外,我不允许使用其他任何东西(因此,没有导入的jar)