Java 中的 PrintWriter 给出意外行为
import java.io.*;
class demo
{
public static void main(String args[])
{
PrintWriter pw=new PrintWriter(System.out);
pw.println("java");
//pw.print("java");
}
}
// 使用 pw.println
输出为 java
,但使用 pw.print
输出为 null,即使用 时控制台上不会打印任何内容打印
。
import java.io.*;
class demo
{
public static void main(String args[])
{
PrintWriter pw=new PrintWriter(System.out);
pw.println("java");
//pw.print("java");
}
}
// the output is java
using pw.println
but output is null using pw.print
i.e nothing gets printed on console while using print
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
几乎可以肯定,这只是缓冲 - 由于您没有刷新它,因此您永远不会得到输出。来自文档:
尝试:
在代码末尾。
It's almost certainly just buffering - and as you're not flushing it, you never get the output. From the docs:
Try:
at the end of the code.
对于自动刷新,您可以使用此构造函数
For automatic flushing, you could use this constructor
对
println()
的调用会隐式刷新输出缓冲区,而对print()
的调用则不会。尝试使用print()
,然后调用pw.flush()
。另请注意,PrintWriter 的构造函数包含在任何写入调用后自动刷新的选项。
A call to
println()
implicitly flushes the output buffer whereas a call toprint()
does not. Try usingprint()
and then callpw.flush()
.Note also that there are constructors of PrintWriter which include an option to automatically flush after any write call.
试试这个:
PrintWriter
将进行内部缓冲,并且println
方法会自动刷新它。Try this instead :
The
PrintWriter
is going to be doing internal buffering, and theprintln
method is automatically flushing it.