Ошибка массива java.util.NoSuchElementException: - PullRequest
0 голосов
/ 06 декабря 2018

Мне нужно прочитать файл из текста подарков и поместить его в массив.Кроме того, мне нужно прочитать стоимость текстового файла.

Программа должна распечатать день и получить стоимость дня и общую стоимость в целом.

Я совершенно запутался, почему произошла ошибка.Спасибо вам за помощь!: D

Мой код:

    import java.io.File;

    import java.io.FileNotFoundException;

    import java.util.Scanner;

    import java.text.NumberFormat;

    public class GiftsTwelveDays{

        public static void main(String[] args) {

            String[] gifts = new String[12];

            double[] costGifts = new double[12];

            String total = new String();

            //Following code reads the Gifts.txt file

            File file = new File("gifts.txt");

            try 
            {
                Scanner scannerFile = new Scanner(file);

                while (scannerFile.hasNextLine()) 

                {
                    int i = scannerFile.nextInt();

                    String present = scannerFile.nextLine();

                    gifts[i - 1] = present;

                }

                scannerFile.close();

            }

            catch (FileNotFoundException e) 

            {
                System.out.println("File not Found.");
            }



            //This reads the cost and stores in array of double

            File file1 = new File("cost.txt");

            try 
            {
                Scanner scannerFile = new Scanner(file1);

                while (scannerFile.hasNextLine()) {

                    scannerFile.next();

                    if(scannerFile.hasNextInt())

                    {

                        int i = scannerFile.nextInt();

                        double cost = scannerFile.nextDouble();

                        costGifts[i-1] = cost;

                    }

                    else
                    {

                        scannerFile.next();

                        total = scannerFile.nextLine();

                    }

                }

                scannerFile.close();

            }

            catch (FileNotFoundException e) 
            {

                System.out.println("File could not be found");;

            }



            //following gets user input and runs

            Scanner userInput = new Scanner(System.in);

            NumberFormat money = NumberFormat.getInstance(); //for format with comma

            money.setGroupingUsed(true);

            double dayCost = 0;

            System.out.println("Enter the day:");

            int choice = userInput.nextInt();

            userInput.nextLine();

            if (choice < 1 || choice > 12)//runs if choic is invalid

            {

                System.out.println("Invalid Choice");

            }

            else

            {

                System.out.println("Your gifts for the day " + choice + " are: ");

                //calculates the day cost and prints gift simultaneously

                for(int i = 0; i < choice; i++)

                {

                    System.out.println((i+1) + gifts[i]);

                    dayCost = dayCost + costGifts[i];

                }

                //prints the calculated cost.

                System.out.println("Cost of Day:$" + money.format(dayCost));

                System.out.println("Total Cost for Twelve Days: :$" + total);

            }

        }

    }

Сообщение об ошибке:

Exception in thread "main" java.util.NoSuchElementException: No line found
    at java.util.Scanner.nextLine(Scanner.java:1540)
    at GiftsTwelveDays.main(GiftsTwelveDays.java:77)
...