Я пытаюсь прочитать файл со сканером и получить некоторые переменные. Вот что файл выглядит следующим образом (игнорировать дополнительную строку между):Ошибка при чтении файла с помощью сканера
ControlType: 1
FIRE @ 541,0, 387,0
FIRE @ 252,0, 198,0
ПАНТ @ 522,0, 174,0
ПАНТ @ 268,0, 399,0
HERO @ 397,0, 287,0
Что мне нужно сделать, это получить тип управления и сохранить его, получить тип объекта (огонь и т. Д.), А затем получить координаты как плавающие. То, что я получил до сих пор, я думаю, это начало, но я не уверен, что понимаю ошибку, которая появляется. Я думаю, что это может иметь какое-то отношение к запятым между поплавками? Это мой код: (сканер считывает из строки «уровня», который содержит все содержимое файла Там нет необходимости для нового файла и т.д..)
// Create a scanner
Scanner in = new Scanner(level);
// Move past initial text
in.next();
// Get control type
int controlType = in.nextInt();
// While there is something to read
while (in.hasNextLine()) {
String a = in.next();
System.out.println(a);
if (a.equals("FIRE")) {
in.next();
float x = in.nextFloat();
float y = in.nextFloat();
fires.add(new Fire(x, y, randGen));
} else if (a.equals("HERO")) {
in.next();
float x = in.nextFloat();
float y = in.nextFloat();
hero = new Hero(x, y, controlType);
} else if (a.equals("PANT")) {
in.next();
float x = in.nextFloat();
float y = in.nextFloat();
pants.add(new Pant(x, y, randGen));
}
}
И это выход:
FIRE
А потом эти ошибки:
Exception in thread "Animation Thread" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextFloat(Unknown Source)
at Game.loadLevel(Game.java:184)
at Game.<init>(Game.java:53)
at Application.setup(Application.java:90)
at processing.core.PApplet.handleDraw(PApplet.java:2373)
at processing.awt.PSurfaceAWT$12.callDraw(PSurfaceAWT.java:1523)
at processing.core.PSurfaceNone$AnimationThread.run(PSurfaceNone.java:316)
'@' не является допустимым поплавок. – Berger
Исправлено это, добавив in.next(), все еще получая сообщение об ошибке – dj1121