Java System.out的输出缓冲

今天学习了java的正则表达式api,在写例子的时候遇到了让人摸不着头脑的问题:从控制台输入了字符串,却没有输出;直到输入的字符串不能匹配的时,一起与Unabled to match输出。相关代码如下:

 刚开始还以为是输入Scanner的问题,整了半天也没有发现那里出现问题。后来在循环里加入了输出语句println发现输入是正常的,每次输入循环都会被正确执行。于是查看java api文档发现下面的话。

”另外,为了自动刷新,可以创建一个 PrintStream;这意味着可在写入 byte 数组之后自动调用 flush 方法,可调用其中一个 println 方法,或写入一个换行符或字节 (' ')。“

说明如果用print 来输出的话,内容会被缓存起来,直到遇到换行符才一起输出出去。

原文地址:https://www.cnblogs.com/mosmith/p/4155767.html