【问题标题】:Preventing console from taking input while printing in java?在java中打印时防止控制台接受输入?
【发布时间】:2020-06-30 04:08:37
【问题描述】:

我的方法有问题。它从文本文件中读取,并延迟将内容打印到控制台上,但是,在打印时,它可以随机获取用户的输入。有时它与正在打印的内容交织在一起。有没有更好的方法来做到这一点?

public static void filePrint(String location) throws IOException, FileNotFoundException, InterruptedException {
        
        File flScannedFile = new File(location);
        
        Scanner scFileScanner = new Scanner(flScannedFile);
        
        while (scFileScanner.hasNext()) {
    
            String file = scFileScanner.nextLine();
                        
            System.out.print(file);
            
            Thread.sleep(650);
        }
    }

【问题讨论】:

  • 您似乎在问一种方法来防止用户在打印过程之间输入,我认为这是不可能的,因为 Java 是独立于平台的语言。不同的操作系统有自己的访问控制台的方式。 我认为 JAVA 没有办法做到这一点。但是有用的事情是,无论用户在控制台中输入什么,它都会在最后显示出来,而不是介于两者之间。并且,将您的 System.out.print(file); 更改为 System.out.println(file); 打印效果更好。

标签: java input printing console


【解决方案1】:

IDE 上的用户将始终能够在控制台上编写,我认为这就是发生在您身上的事情。睡眠时间长这一事实使您清楚地看到了这一点。但是,即使用户在控制台上写了任何东西,也不应该影响全局输出。

我想补充一点,您可能希望将 print 切换为 println;而且,最好使用 try 和 catch 而不是在方法名称上列出所有这些异常:)

【讨论】:

    猜你喜欢
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-17
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多