Now what I am **guessing** is the following chunk of code could have caused the problem:-
flyingSpeed = reader.nextDouble();
System.out.println(flyingSpeed);
airWeapon= reader.nextLine();
Now before the first line is called I guess the scanner is at this point in the file:-
150.00
^
Missle
Killer 571
U571
10000
500
Missle
When we read the double from the file, the we move to the end of the current line as here:-
150.00
^
Missle
Killer 571
U571
10000
500
Missle
After that when nextLine() is called the scanner returns whatever it finds on the current line (between the current position and the end of line) which is nothing so it just returns a blank string.
Hence the subsequent System.out.println(airWeapon); just prints a blank line.
Now at the begining of the next loop the following is the position on the Scanner in your file:-
150.00
Missle
^
Killer 571
U571
10000
500
Missle
Now when you robotName = reader.nextLine(); , you actually read the "Missle" and not "Killer 571" as you wanted to, however this wouldn't cause a problem since both are Strings. The same also happens with serial = reader.nextLine(); , it actually reads the robot name "Killer 571" instead of "U571" but that too as fine as both are Strings.
Now when you try to read the "price" the problem arrives. You expect a double value but ... you Scanner is currently pointed on "U571". Because of which you get an InputMismatchException indicating that your program was expecting a double but found a String instead.
Hope this should clear it up.