我正在为我的游戏引擎编写一个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;
}
它使用相同的方法处理以前的语句。我不确定为什么这行会引发异常,而不是其他行,所有都采用相同的格式(但显然不同的命令和数字)。为什么抛出这个异常?
答案 0 :(得分:0)
正如您在问题的评论中所述,您提供了一个字符串和3个浮点数作为输入,但您正在尝试加载/读取4个浮点数,这当然会抛出InputMismatchException。我不知道你的其他输入行,但如果它们也包含字符串,它们就无法正常工作。再次检查输入或更正您的读取方法。