Ошибка Java, «Исключение в потоке» main «java.util.NoSuchElementException» - PullRequest
0 голосов
/ 24 октября 2018

Я продолжаю получать эту ошибку при запуске кода.«Исключение в потоке» main «java.util.NoSuchElementException» в селекторе файлов Я использую текстовый файл, содержащий это.

Schoultz Matthew Louis-Stanton 10/14/1979

Doe JohnБрюс 11/23/1981

Попытка заставить программу выводить данные в определенном порядке.

package com.company;

import javax.swing.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;

public class Main {

public static void main(String[] args)
{
  infoIn();
}

private static void infoIn()
{
    JFileChooser fileChooser = new JFileChooser();

    Scanner in = null;

    if(fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
    {

        try
        {
            File selectedFile = fileChooser.getSelectedFile();
            in = new Scanner(selectedFile);

            ArrayList<Person> peopleArray = new ArrayList<>();
            while (in.hasNextLine())
            {
                Person myPeople = new Person();
                myPeople.setLastName(in.next());
                myPeople.setFirstName(in.next());
                myPeople.setMiddleName(in.next());
                myPeople.setBirthDate(in.next());
                peopleArray.add(myPeople);
            }

            infoOut(peopleArray);
        }
        catch (FileNotFoundException e)
        {
            JOptionPane.showMessageDialog(null, "ERROR" +  e.getMessage());
        }


    }
}

private static void infoOut(ArrayList<Person> peopleArray)
{
    try
    {
        PrintWriter outFile = new PrintWriter("BioInfoOut.dat");

        for (int i = 0; i < peopleArray.size(); i++)
        {
            outFile.println(peopleArray.get(i).getFirstName() + " " + peopleArray.get(i).getMiddleName().charAt(0) + " " + peopleArray.get(i).getLastName() + " " + peopleArray.get(i).calculate2036Age());

            Person myPeople = new Person(peopleArray.get(1).getFirstName(), peopleArray.get(i).getLastName(), peopleArray.get(i).getMiddleName(), peopleArray.get(i).getBirthDate());

            JOptionPane.showMessageDialog(null, "Here is the date that was inputted " + myPeople.getFirstName() + " " + myPeople.getLastName() + " " + myPeople.getMiddleName().charAt(0) + " " + myPeople.getBirthDate());
        }
        JOptionPane.showMessageDialog(null, "Output was successful.");
    }
    catch (FileNotFoundException e)
    {
        JOptionPane.showMessageDialog(null, "ERROR");
    }
}

}

Это ошибка, которую я получаю, когда запускаю код.Не уверен, что вызывает это.

Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1478)
at com.company.Main.infoIn(Main.java:35)
at com.company.Main.main(Main.java:14)
...