使用这两个有区别吗?你什么时候用一个而不是另一个?
System.out.println(result);
Run Code Online (Sandbox Code Playgroud)
要么
PrintWriter out = new PrintWriter(System.out);
out.println(result);
out.flush();
Run Code Online (Sandbox Code Playgroud) 我想在Windows控制台中打印俄语和德语字符.所以我写了一个小测试程序来了解它的工作原理:
PrintStream ps = new PrintStream(System.out, false, "UTF-8");
ps.println("öäüß ????");
Run Code Online (Sandbox Code Playgroud)
然后我启动了cmd.exe,将其字体改为Lucida Console,它支持Unicode,用"chcp 65001"将代码页改为Unicode,并执行了我的程序.
打印出德语和俄语字符,但文字比我预期的要多一些(用红色加下划线):

但是文本在Eclipse控制台中正确打印.有没有办法在Windows控制台中正确打印?我使用Windows 7.
我刚刚用JNI解决了这个问题,但它是否可以用纯java来解决它仍然很有趣.
使用System.out(和相关)总是看起来很尴尬,因为公共领域,现在与最新的Netbeans给出了一个明显的"声明应删除"提示.
因此我的问题是:System.out仍然是写入控制台的首选方式,还是应该首选的其他API?
编辑:我不想将其用于日志记录,而是用于简单的控制台应用程序.类似的东西ps将正在运行的进程打印到控制台.