java - 按顺序打印所有 System.out.println() 语句
问题描述
我正在尝试使用 System.out.println() 语句在 java 中打印一些语句,但它们没有按顺序打印。
if(us02_birth_b4_marriage())
{
System.out.println("All user stories passed succesfully");
}
else
{
System.out.println("There are following errors: ");
for(String failString: failures)
{
System.err.println(failString);
}
//System.exit(0);
}
System.out.println("Individual");
System.out.format("%-10s%-20s%-10s%-15s%-10s%-15s%-15s%-20s%-20s\n", "ID", "Name", "Gender", "Birthday", "Age", "Alive", "Death", "Child", "Spouse");
该方法在类的开头定义。这有什么区别吗?请在此处查看输出输出图像
解决方案
问题是您正在将一些消息写入System.out
到System.err
. 这可能会导致行的顺序出乎意料(取决于您的期望……)。这主要是因为System.out
并且System.err
是具有不同(Java 端)缓冲特性的不同流。
鉴于您运行应用程序的方式,它们碰巧写到同一个地方;即你的控制台。但即便如此,操作系统也不保证标准输出和标准错误行的交错将完全对应于应用程序编写它们的顺序。
解决方案:如果您想要保证这些行将按照您的代码写入它们的顺序出现在控制台上,您必须将它们写入同一个流。
推荐阅读
- sql - 如何通过检查 DB2 中另一个表两列之间的范围来获取值
- node.js - 如何使用 Node.js 使用 puppeteer 等待传入消息?
- go - nil 的类型是什么?
- javascript - Axios 拦截器 - ReferenceError: Data is not defined
- javascript - Unity C#如何正确加载托管DLL?
- wordpress - 致命错误:未捕获 Mpdf\MpdfException for Send PDF for Contact Form 7
- javascript - 如何将我的 JavaScript 代码放在 url 上,以便任何人都可以链接到他们的 HTML 文件?
- python - 如何通过 python 中的 Google Drive API 重命名谷歌电子表格?
- powerbi - 获取报表中某一列的总计
- php - 如何从 textarea 中的 @foreach 循环呈现 html