1

如何在 Java 中清除屏幕?

我使用 while 循环和 switch case 创建了一个菜单驱动的简单演示程序。一个循环完成后,我想清除一个屏幕,但这不起作用。我会很高兴有一个可能的解决方案。

我正在使用 JDK 7 并在命令提示符下运行程序。

import java.util.*;
class DemoPrg
{
    public static void main(String argv[])
    {
        int ch;
        Scanner sc=new Scanner(System.in);
        while(true)
        {
            // i want to clear the scrren hear
            System.out.println("1. Insert New Record");
            System.out.println("2. Display Record");
            System.out.println("3. Delete Record");
            System.out.println("4. Edit Record");
            System.out.println("0. Exit");
            System.out.print("Enter Your Choice:");
            ch=sc.nextInt();
            switch(ch)
            {
                case 1:
                    System.out.println("insert");
                    break;
                case 2:
                    System.out.println("display");
                    break;
                case 3:
                    System.out.println("delete");
                    break;
                case 4:
                    System.out.println("edit");
                    break;
                case 0:
                    System.exit(0);
                default:
                    System.out.println("invalid");
            }
        }   
    }
}
4

1 回答 1

0

抱歉,但这不可能以通用方式进行。

原因是,您的程序不知道屏幕是什么。System.out 可以引用任何东西,NUL 设备、某种控制台甚至文件。控制台可能允许清除,但如何清除控制台完全取决于控制台的类型(IDE 中通常的控制台无法清除,这与其记录程序输出的目的相矛盾,而 DOS 的控制台-prompt/shell 通常可以清除)。

您最好的选择是假设控制台确实支持 ANSI 代码并按照 MohdAdnan 的评论中的建议发送 ANSI 控制代码以清除屏幕:

System.out.print("\u001b[2J");
System.out.flush();
于 2013-10-02T17:18:52.650 回答