При сканировании документа cost.txt возникли некоторые проблемы.
В тексте нет значения типа Integer, поэтому функция hasNextInt () всегда будет возвращать false.
Вместо суммирования всех значений в итоговой переменной, которую вы вводили последним значением, считанным из файла, в строковой переменной, более того, вы снова ожидали целочисленное значение, поэтому строка оставалась пустой, поэтому вы не виделичто-нибудь на выходе и только последнее значение после исправления, предоставленного выше.
Я изменил ваш код следующим образом
Сначала я изменил тип Total с String на Double
Затем я изменил ваш раздел сканирования с этого:
while (scannerFile.hasNextInt()) {
scannerFile.next();
if(scannerFile.hasNextInt())
{
int i = scannerFile.nextInt();
double cost = scannerFile.nextDouble();
costGifts[i-1] = cost;
}
else
{
scannerFile.nextInt();
total = scannerFile.nextLine();
}
}
scannerFile.close();
На это:
int i = 0;
while (scannerFile.hasNextDouble()) {
double cost = scannerFile.nextDouble();
costGifts[i] = cost;
i++;
total += cost;
}
scannerFile.close();
}
Теперь сумма рассчитывается правильно, пока вы читаете каждую строку, и вы также убедитесь, что выне пропускают ни одной строки.