Мое назначение:
- Создать файл с двумя столбцами чисел: Расстояние и Скорость .
- Написатькласс
TravelInfo
, имеющий три элемента информации: скорость , время , расстояние . - В классе также должен быть метод
calcTime()
, который рассчитывает время, необходимое для достижения пункта назначения, на основе расстояния и скорости (напомним: Время = Расстояние / Скорость) - ЗаписьОсновная программа, которая:
- Создает ArrayList
TravelInfo
объектов размером 10. - Запрашивает у пользователя имя файла и считывает данные в
TravelInfo
объекты - Вызывает метод
calcTime()
для каждого объекта TravelInfo
. - Создает выходной файл с данными, записанными в формате: Расстояние, Время, Скорость
Каждый раз, когда я запускаю свою программу, я получаю сообщение об ошибке
Исключение в потоке "main" java.util.NoSuchElementException
Кромеэта ошибка, я думаю, я все сделал правильно, за исключением, возможно, вызова моего метода, и я до сих пор не отформатировал выходной файл (не совсем уверен, как).Я не могу продолжить, пока получаю эту ошибку.
Вот мой main()
метод:
public static void main(String[] args) throws IOException {
Scanner keyboard = new Scanner(System.in);
ArrayList<TravelInfo> list = new ArrayList<>();
System.out.println("What is the name of the file?");
String filename = keyboard.nextLine();
File f = new File(filename);
Scanner inputFile = new Scanner(f);
while(inputFile.hasNext()) {
int s = inputFile.nextInt();
int d = inputFile.nextInt();
int t = inputFile.nextInt();
TravelInfo p = new TravelInfo(s, d, t);
list.add(p);
TravelInfo cls = new TravelInfo(s,d,t);
cls.calcTime(t);
cls.calcTime(s);
cls.calcTime(d);
// System.out.println("Time is " + cls.calcTime(t));
/*for(int i=0; i<list.size(); i++) {
list.get(i).print();
*/ }
for(TravelInfo k : list)
System.out.println(k);
PrintWriter outputFile = new PrintWriter("Data.txt");
outputFile.println(list);
//outputFile.println();
outputFile.close();
}
}
И мой TravelInfo
класс
public class TravelInfo {
private int speed;
private int distance;
private int time;
public TravelInfo(int s, int d, int t) {
speed = s;
distance = d;
time = t;
}
public int calcTime(int time) {
time = distance/speed;
return time;
}
}