错误处理,抛出异常和用户输入

时间:2015-09-30 03:23:17

标签: java exception-handling user-input throw println

我正在尝试获取用户输入(例如文件名)并将它们作为参数存储在另一个函数中。但是,两个println都是同时显示的。这阻止我正确输入参数。我认为这与抛出异常有关。但是,如果我不添加例外,我就无法运行该程序。

public class demon {
    static Scanner input = new Scanner(System.in);

public static void main(String [] args) throws Exception {
    MainMenu();
}//end main

public static void MainMenu() throws Exception {
    System.out.println("Welcome to Demon. Please select an option from below:");
    System.out.println("1: Encrypt a File");
    System.out.println("2: Decrypt a File");
    System.out.println("3: Exit");
    int userOption = input.nextInt();
    if (userOption == 1) {
        optionEncrypt();
    } else if (userOption == 2) {
        optionDecrypt();
    } else if (userOption == 3) {
        System.exit(0);
    }else {
        System.out.println("Invalid Entry");
        System.exit(0);
    }
}

public static void optionEncrypt() throws Exception {
    System.out.println("Enter the file name to encrypt:");
    String inputFileName = input.nextLine();
    System.out.println("Enter the file name to output:");
    String outputFileName = input.nextLine();
    createEncryptionFile("test.txt", "demon.txt");
}

Output:
1: Encrypt a File
2: Decrypt a File
3: Exit
1
Enter the file name to encrypt:
Enter the file name to output:

1 个答案:

答案 0 :(得分:1)

只需将nextLine()方法更改为next()

似乎是当您通过nextInt()方法获得第一个整数时,nextLine()函数仍会有一个新行