【发布时间】:2018-08-31 12:52:49
【问题描述】:
我最近才开始使用 Java,所以请多多包涵。我正在尝试通过从格式为
的 csv 文件中读取数据来创建对象 Product 的数组Name,Price,Stock
但每次我尝试使用 Load() 函数时,它总是在 Product 构造函数行中给我一个错误。
private Product[] product = new Product[100];
public Product[] Load() throws FileNotFoundException {
int counter = 0;
boolean end = false;
Scanner scanner = new Scanner(new File("products.csv"));
scanner.useDelimiter(",");
while (!end) {
if (scanner.hasNext()) {
product[counter] = new Product(scanner.next(), scanner.nextFloat(), scanner.nextInt());
counter++;
}
else {
end = true;
}
}
scanner.close();
return product;
}
错误消息是java.util.scanner.next(unknown source),scanner.nextFloat() 和 scanner.nextInt()
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at ScoutShop.CSVReader.Load(CSVReader.java:20)
at ScoutShop.Main.main(Main.java:11)
【问题讨论】:
-
这肯定不是整个错误。
-
你应该发布抛出异常的整个堆栈跟踪。
-
我在最后添加了整个错误
-
你在测试
scanner.hasNext(),然后你做了三个scanner.next()。 -
如果scanner.hasNext() 为真,那么在该特定顺序中总会有名称价格和库存
标签: java csv java.util.scanner