Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:打印到屏幕延迟_Java_Java Threads_System.out - Fatal编程技术网

Java:打印到屏幕延迟

Java:打印到屏幕延迟,java,java-threads,system.out,Java,Java Threads,System.out,所以我有一个函数,可以像在屏幕上打字一样打印文本 我尝试使用System.nanoTime设置并获取打印到屏幕所需的时间,并将其从Thread.sleep中删除,但仍然不顺畅 我希望每封信都能打印出来,并且所用的时间大致相同,而不是像现在这样在信之间来回颠簸 public static void slow_print(String to_print) { long time_between = 200; for (int i = 0; i < to_print.length

所以我有一个函数,可以像在屏幕上打字一样打印文本

我尝试使用System.nanoTime设置并获取打印到屏幕所需的时间,并将其从Thread.sleep中删除,但仍然不顺畅

我希望每封信都能打印出来,并且所用的时间大致相同,而不是像现在这样在信之间来回颠簸

public static void slow_print(String to_print) {
    long time_between = 200;
    for (int i = 0; i < to_print.length(); i++) {
        System.out.print(to_print.charAt(i));
        try {
            Thread.sleep(time_between);
        }
        catch(InterruptedException event) {
            System.out.println("Not supposed to happen");
        }

    }
    System.out.println();
}

输出被缓冲。要刷新缓冲区,您需要调用flush或将\n包含到字符串中。

您可能需要刷新流。此外,控制台输出往往有点不可靠请参见这个问题:进一步阅读本主题。刷新输出后,它似乎仍有延迟。我不知道我做错了什么。请注意,您可以在一行程序System.out.appendto_print.charAti.flush;中打印和刷新;。如果仍然有延迟,它可能与接收终端连接,接收终端的行为完全不受您的控制。但您可以尝试在本机控制台或IDE中运行不同的终端,以比较行为,检查这是否是原因。