扫描仪InputMismatchException

时间:2014-08-02 10:59:27

标签: java java.util.scanner game-engine wavefront

我正在为我的游戏引擎编写一个MTL文件加载器。我使用附加到FileInputStream的扫描程序从文件中读取。在尝试阅读该行时

Ks 0.500000 0.500000 0.500000

抛出一个InputMismatchException(由Scanner),通向我的代码的堆栈跟踪:

protected ColorRGBA readColor() {
    ColorRGBA color = new ColorRGBA();
    color.set(scanner.nextFloat(), scanner.nextFloat(), scanner.nextFloat(), scanner.nextFloat());

    return color;
}

它使用相同的方法处理以前的语句。我不确定为什么这行会引发异常,而不是其他行,所有都采用相同的格式(但显然不同的命令和数字)。为什么抛出这个异常?

1 个答案:

答案 0 :(得分:0)

正如您在问题的评论中所述,您提供了一个字符串和3个浮点数作为输入,但您正在尝试加载/读取4个浮点数,这当然会抛出InputMismatchException。我不知道你的其他输入行,但如果它们也包含字符串,它们就无法正常工作。再次检查输入或更正您的读取方法。