Java err输出时错行

求解错误输出流 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时:

img

.
err时:

img

我猜你的意思是让控制台用不同颜色显示,也能看出来你是刚刚在学java,但是建议不要把精力花费在调整这个格式上,因为它的用法不是让你区分颜色用的。用out就可以实现提示功能了。
那个颜色是各种编辑器对out和err者两种流的支持,而不是err本身就带颜色。
简单的说吧,这俩输出你单独使用都没问题,但是你混合使用的时候,它俩的输出顺序并不是固定的,这个和你写的内容有关。
它这个输出不是马上输出,是攒到一定量再输出,这个得等你学到流才能明白缓冲区得概念。
不知道这么说你明白不,给你截几个图看看:

img

img


大概就是顺序你调整不了,所以你没有必要在这里浪费自己的宝贵时间啦,直接用out就好了,后面你还会学到更多实用的log技术呢

out是同步的,err是异步的