Java 预写输入文本文件引发异常(当输入为双精度时)

Java 预写输入文本文件引发异常(当输入为双精度时),java,input,double,inputmismatchexception,Java,Input,Double,Inputmismatchexception,我有一份学校作业,将使用一个预先制作的文本文件进行测试,该文件将数据输入程序。我的问题是,这个预先制作的文本文件会使程序崩溃,即使当您手动键入数据时,它可以正常工作。我设法在一个小得多的程序中重现了这个问题: import java.util.Scanner; import java.util.ArrayList; public class DoubleTest { public static void main(String[] args){ ArrayList<Strin

我有一份学校作业,将使用一个预先制作的文本文件进行测试,该文件将数据输入程序。我的问题是,这个预先制作的文本文件会使程序崩溃,即使当您手动键入数据时,它可以正常工作。我设法在一个小得多的程序中重现了这个问题:

import java.util.Scanner;
import java.util.ArrayList;

public class DoubleTest {

public static void main(String[] args){

    ArrayList<String> fNames = new ArrayList<>();
    ArrayList<String> sNames = new ArrayList<>();
    ArrayList<Double> scores = new ArrayList<>();
    Scanner keyboard = new Scanner(System.in);
    int i = 1;

    while(i != 0){
        System.out.println("First name (quit by typing 0): ");
        String fName = keyboard.nextLine();
        if(fName.equals("0")){
            i = 0;
        }else{
            System.out.println("Result: ");
            double score = keyboard.nextDouble();
            keyboard.nextLine();
            System.out.println("Last name: ");
            String sName = keyboard.nextLine();
            fNames.add(fName);
            sNames.add(sName);
            scores.add(score);
        }
    }
    for(String s : fNames){
        System.out.println(s);
    }

    for(String s : sNames){
        System.out.println(s);
    }

    for(Double d : scores){
        System.out.println(d);
    }
}
}
这是个例外:

 Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextDouble(Unknown Source)
    at DoubleTest.main(DoubleTest.java:21)

有没有办法解决这个问题?再说一次,当我手动输入它时,它不会抛出异常

你能更详细地解释一下你是如何“复制粘贴”输入的吗?这在很大程度上取决于用于接受输入的程序的控制台类型。有可能是将整个文本作为一行。是什么阻止您调试自己的代码?循环的每次迭代读取三行输入。文本文件的第四行、第五行和第六行是什么?它们与您的代码试图读取的内容匹配吗?我正在使用Eclipse自己的控制台进行输入。问题是,如果我只有,比方说,字符串作为输入,它就不会有问题。String,int,String,String(或其他任何东西)也能工作,只有double会引发异常。我还是个初学者,所以我不知道该找什么
 Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextDouble(Unknown Source)
    at DoubleTest.main(DoubleTest.java:21)