Today, I learned Java's regular expression API, and when I wrote an example, I encountered a confusing question: input a string from the console, but no output; until the input string does not match, together with the unabled to match output. The relevant code is as follows:
At first I thought it was the input scanner problem, the whole day did not find there is a problem. Later in the loop added the output statement println found that the input is normal, each input loop will be executed correctly. So look at the Java API documentation and discover the following.
"In addition, to automatically refresh, you can create one PrintStream
; This means that the method can be called automatically after the byte array is written, either by calling one of the flush
println
methods, or by writing a newline character or byte ( ‘\n‘
). “
Note that if printed, the content is cached until it encounters a newline characters output.
Output buffering for Java System.out