求解错误输出流 System.out.println() 和 System.err.println()
当使用out输出时会正常输出,但使用err时就会错行,下面是代和输出结果
.
代码如下:
public static void main (String[] args) {
Scanner in = new Scanner(System.in);
boolean okay;
do {
System.out.print("请输入一个数字:");
if (in.hasNextDouble()) {
okay = true;
} else {
okay = false;
String word = in.next();
System.out.println(word + " 不是一个数字");
//System.err.println(word + " 不是一个数字");
}
} while (!okay);
double x = in.nextDouble();
.
输出结果:
out时:
.
err时:
我猜你的意思是让控制台用不同颜色显示,也能看出来你是刚刚在学java,但是建议不要把精力花费在调整这个格式上,因为它的用法不是让你区分颜色用的。用out就可以实现提示功能了。
那个颜色是各种编辑器对out和err者两种流的支持,而不是err本身就带颜色。
简单的说吧,这俩输出你单独使用都没问题,但是你混合使用的时候,它俩的输出顺序并不是固定的,这个和你写的内容有关。
它这个输出不是马上输出,是攒到一定量再输出,这个得等你学到流才能明白缓冲区得概念。
不知道这么说你明白不,给你截几个图看看:
out是同步的,err是异步的