- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试更改 System.out 的编码,我创建了一个 PrintWriter
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out, ENCODING));所以
out.format("some text");
编码工作正常。但是
out.checkError()没有返回 true当输出流关闭时,例如通过 Unix 'head' 命令。
我发现 PrintStream 提供了一个带编码的构造函数
PrintStream out = new PrintStream(System.out, true, ENCODING);
和 checkError()这门课效果很好。
我怀疑 PrintWriter 的情况是错误,还是我遗漏了什么?
最佳答案
不,我也认为这不是错误,而是根源于 checkError()
及其基础类的定义/设计略有不同:
public boolean checkError()
Flushes the stream if it's not closed and checks its error state. Returns:true
if the print stream has encountered an error, either on the underlying output stream or during a format conversion.
public boolean checkError()
Flushes the stream and checks its error state. The internal error state is set totrue
when the underlying output stream throws anIOException
other thanInterruptedIOException
, and when thesetError
method is invoked. If an operation on the underlying output stream throws anInterruptedIOException
, then thePrintStream
converts the exception back into an interrupt by doing:Thread.currentThread().interrupt();
or the equivalent. Returns:true
if and only if this stream has encountered anIOException
other thanInterruptedIOException
, or thesetError
method has been invoked.
如您所见,PrintStream
的 checkError()
定义更为严格,失败可能仍值得研究。
然后很大程度上取决于您的实际输出控制台(及其支持的编码),例如在 Windows 中,您需要:
chcp 65001
..启用(例如)UTF-8 输出。( https://stackoverflow.com/a/388500/592355 , https://stackoverflow.com/a/10148976/592355 , ...)
关于Java: checkError() for PrintWriter(OutputStreamWriter(System.out)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12929958/
在在线阅读有关将RSelenium与Docker结合使用的文档后,我已经安装了Docker Toolbox和RSelenium。 在Docker Toolbox中,我运行 $ docker run -
尝试更改 System.out 的编码,我创建了一个 PrintWriter PrintWriter out = new PrintWriter(new OutputStreamWriter(Syst
正如 JAVA 文档中给出的那样,每当出现 java.io.IOException 时,变量“trouble”就会设置为 true。我写了一个程序: import java.io.*; class F
我们已将服务器上的 TCP KeepAlive 时间从默认的 7200 秒降低到 500 秒。 我正在尝试编写一个小的 Java 程序来检查该服务器实际上是否正在使用这些更新的设置。如果我从命令行手动
我尝试使用 RSelenium 打开远程驱动程序,但我一直面临着与 Docker 相同的问题。 在 Docker 中我运行 $ docker run -d -p 4445:4444 selenium/
我是一名优秀的程序员,十分优秀!