当前位置: 首页 > 知识库问答 >
问题:

第二次运行方法时出现“没有这样的元素”错误[重复]

葛飞扬
2023-03-14
public static void main(String[] args) throws IOException {
    addName();
    addName();      //Line "10" in error
}

public static void addName() throws IOException {
    //Initializing Variables and Scanner
    Scanner keyboard = new Scanner(System.in);
    FileWriter fwriter = new FileWriter("Data.txt", true);
    PrintWriter outputFile = new PrintWriter(fwriter);
    int numFriends;
    String firstName;
    String lastName;
    String email;

    //Get number of entries to add
    System.out.print("How many people do you wish to add? ");
    numFriends = Integer.parseInt(keyboard.nextLine());        //Line "25" in error

    //Prompt for info and add it to the file
    for(int i = 1; i <= numFriends; i++){
        System.out.printf("Enter the first name of person %d: ",i);
        firstName = keyboard.nextLine();
        System.out.printf("Enter the last name of person %d: ",i);
        lastName = keyboard.nextLine();
        System.out.printf("Enter the email of person %d: ",i);
        email = keyboard.nextLine();

        outputFile.println(firstName + " " + lastName + " " + email);
    }

    //Wrap things up and give a confirmation
    outputFile.close();
    keyboard.close();
    System.out.println("Data written to the file.");;
}
How many people do you wish to add? 1
Enter the first name of person 1: s
Enter the last name of person 1: d
Enter the email of person 1: g
Data written to the file.
How many people do you wish to add? Exception in thread "main" 
java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at Problem1.addName(Problem1.java:25)
at Problem1.main(Problem1.java:10)

共有1个答案

壤驷兴朝
2023-03-14

不应该在方法结束时关闭扫描程序,理想情况下应该在整个执行过程中重用相同的扫描程序

通过关闭扫描程序,您也关闭了它的输入源,在本例中是system.in。因此,用户再也不能输入任何东西了。

下面是一个更正的片段:

public static void main(String[] args) throws IOException {
    Scanner keyboard = new Scanner(System.in);
    addName(keyboard);
    addName(keyboard);
}

public static void addName(Scanner keyboard) throws IOException {
    FileWriter fwriter = new FileWriter("Data.txt", true);
    PrintWriter outputFile = new PrintWriter(fwriter);
    int numFriends;
    String firstName;
    String lastName;
    String email;

    //Get number of entries to add
    System.out.print("How many people do you wish to add? ");
    numFriends = Integer.parseInt(keyboard.nextLine());        //Line "25" in error

    //Prompt for info and add it to the file
    for(int i = 1; i <= numFriends; i++){
        System.out.printf("Enter the first name of person %d: ",i);
        firstName = keyboard.nextLine();
        System.out.printf("Enter the last name of person %d: ",i);
        lastName = keyboard.nextLine();
        System.out.printf("Enter the email of person %d: ",i);
        email = keyboard.nextLine();

        outputFile.println(firstName + " " + lastName + " " + email);
    }

    //Wrap things up and give a confirmation
    outputFile.close();
    System.out.println("Data written to the file.");
}
 类似资料:
  • 问题内容: 我正在尝试使用杰克逊对POJO进行序列化和反序列化。从POJO到JSON可以完美地工作,而从另一个方向去则不行。 我有一个POJO 并运行和测试我运行了calendar.model包; 引发异常 我已经尽力将JSON转换为POJO了,但是没有。如果我从JSON映射到Map类型,它确实可以工作。 谢谢您的帮助 编辑 这是我依赖中的杰克逊的grep 看起来除了jackson2之外,没有其他

  • 我正在尝试单击页面上的“新车辆搜索”,但在我看来,我有错误的Web元素定位器(XPath或CSS)。我尝试了所有可能的选项(CSS,XPath..),但没有成功,我得到了一个错误: 块报价 [错误]NoSuchElementException:没有这样的元素:无法找到元素:{“method”:“xpath”,“selector”:“/html/body/div[5]/div/div[4]/div1

  • 我是硒的新手,请帮帮我。整个代码: 如何为以粗体突出显示的元素选择xpath?我试过很多例子,但不幸的是没有一个像预期的那样有效。任何帮助都会很好。

  • 我对简单点击按钮有问题。它的按钮是CSS。 我想执行点击操作,我使用以下代码: 我得到错误: 为什么我会犯这个错误?它应该工作得很好。此按钮位于Web的底部。也许我应该向下滚动一页?

  • 我正在尝试从德国气象局(DWD)读取天气数据。这是. txt-File的一小部分: 我尝试使用以下代码导入该文件: 但是,我收到以下错误消息: 扫描中的错误(文件 = 文件,什么 = 什么,sep = sep,引号 = 引号,dec = dec,:第 1 行没有 52 个元素 我尝试了这个问题的第一个建议,但无济于事。将整个表格粘贴到read.table-option 是不可能的,因为原始数据包含