print 和 println 不是同时执行的
Print and println aren't executed in the same time
我的 servlet 中有一个方法,我可以在其中向控制台打印一些内容。
private void collectingWorkPositions(HttpSession session, HttpServletRequest request)
{
System.out.println("Collecting1..");
//code...
System.out.println("Collecting2..");
//code...
System.out.print("printing p: ");
for(Integer i:p)
System.out.print(i + " ");
}
调用此方法时,仅
Collecting1..
Collecting2..
打印在控制台中。当我刷新 JSP 页面时,只有最后一次打印(没有 ln)被打印出来。我知道这两者之间的区别在于 println
将在新行打印,而 print
将在同一行打印,那么为什么这不会在同一操作中发生?
这与您从不终止线路有关。
这要么与 java 不刷新有关,要么与日志处理程序在写入日志之前一直等到行尾有关。
在末尾添加最后的 System.out.println()
或 System.out.print('\n')
以修复它。
System.out(如 c++ 中的 cout 和 C 中的 stdout)被缓冲(缓冲流)。
当缓冲区已满或发现 "newline" 字符时,系统刷新缓冲区的内容。
println 包含换行符,但 print 不包含。如果您想强制发送内容,请包括:
System.out.flush();
for 语句之后。
我的 servlet 中有一个方法,我可以在其中向控制台打印一些内容。
private void collectingWorkPositions(HttpSession session, HttpServletRequest request)
{
System.out.println("Collecting1..");
//code...
System.out.println("Collecting2..");
//code...
System.out.print("printing p: ");
for(Integer i:p)
System.out.print(i + " ");
}
调用此方法时,仅
Collecting1..
Collecting2..
打印在控制台中。当我刷新 JSP 页面时,只有最后一次打印(没有 ln)被打印出来。我知道这两者之间的区别在于 println
将在新行打印,而 print
将在同一行打印,那么为什么这不会在同一操作中发生?
这与您从不终止线路有关。 这要么与 java 不刷新有关,要么与日志处理程序在写入日志之前一直等到行尾有关。
在末尾添加最后的 System.out.println()
或 System.out.print('\n')
以修复它。
System.out(如 c++ 中的 cout 和 C 中的 stdout)被缓冲(缓冲流)。 当缓冲区已满或发现 "newline" 字符时,系统刷新缓冲区的内容。
println 包含换行符,但 print 不包含。如果您想强制发送内容,请包括:
System.out.flush();
for 语句之后。