Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的数组列表和文本文件读取_Java_Arraylist_Constructor_Text Files - Fatal编程技术网

Java中的数组列表和文本文件读取

Java中的数组列表和文本文件读取,java,arraylist,constructor,text-files,Java,Arraylist,Constructor,Text Files,主要内容: 我对Java编程还是很陌生,这一点我很难理解。您得到了这一点,因为文件中可能缺少字段、空格或换行符。 因此,当您执行fileIn.next*()时,它会抛出一个NoTouchElementException 相反,你可以这样做 Exception in thread "main" java.util.NoSuchElementException at java.util.Scanner.throwFor(Scanner.java:862) at java.util.Scanner.n

主要内容:


我对Java编程还是很陌生,这一点我很难理解。

您得到了这一点,因为文件中可能缺少字段、空格或换行符。 因此,当您执行fileIn.next*()时,它会抛出一个NoTouchElementException

相反,你可以这样做

Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1371)
at ayers_hwk3.Ayers_Hwk3.main(Ayers_Hwk3.java:29)

如果此操作引发ArrayIndexOutOfBounds异常,则打印单词并找出错误在文件中的确切位置。

当扫描仪尝试解析输入时,问题发生在运行时。字段不足,或者由于扫描器默认情况下在空白处中断,在数字字段出现之前,可能有两个以上的空格分隔字。
    public static void main(String[] args) throws IOException {

        Scanner fileIn = new Scanner (new File("students.txt"));
        ArrayList <Student> list = new ArrayList<>();


        while (fileIn.hasNextLine()) {
            list.add(new Student(fileIn.next(), fileIn.next(), fileIn.nextDouble(), fileIn.nextDouble(), fileIn.nextDouble()));
        }
        fileIn.close();
        System.out.println(list.toString());
    }

}
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1371)
at ayers_hwk3.Ayers_Hwk3.main(Ayers_Hwk3.java:29)
while (fileIn.hasNextLine()) {
    String line = fileIn.nextLine();
    String[] words = line.split(' ')
    list.add(new Student(words[0], words[1], words[2], words[3], words[4]);
 }