javas.nextInt();错误消息

javas.nextInt();错误消息,java,netbeans,int,Java,Netbeans,Int,我正在尝试将“餐厅”添加到我的系统中。我一直收到以下错误消息: Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Scanner.java:864) at java.util.Scanner.next(Scanner.java:1485) at java.util.Scanner.nextInt(Scanner.java:2117)

我正在尝试将“餐厅”添加到我的系统中。我一直收到以下错误消息:

 Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:864)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextInt(Scanner.java:2117)
    at java.util.Scanner.nextInt(Scanner.java:2076)
    at 
projects.dao.textdao.TextRestaurantDAO.loadRestaurants(TextRestaurantDAO.java:40)
at projects.ProjectIncrement2.loadRestaurants(ProjectIncrement2.java:83)
at projects.ProjectIncrement2.main(ProjectIncrement2.java:25)
Java Result: 1
这是当我单击错误消息(显示restaurantTables=s.nextInt();和RestaurantSetATS=s.nextInt();)的部分时,它一直带我到的代码:

@覆盖
公共列表(路径){
列表餐厅=新建ArrayList();
try(Scanner s=newscanner(new BufferedReader(new FileReader(path.toString()))){
s、 useDelimiter(Character.toString(DELIMITER));
r餐厅;
国际餐厅,餐厅,餐厅;
字符串restaurantName,restaurantLocation;
而(s.hasNext()){
如果(s.hasNextInt()){
restaurantId=s.nextInt();
restaurantTables=s.nextInt();
restaurantSeats=s.nextInt();
}
否则{
restaurantId=0;
餐饮类=0;
RestaurantSets=0;
}
restaurantName=s.next();
restaurantLocation=s.next();
s、 nextLine();
r=新餐厅(餐厅名称、餐厅名称、餐厅位置、餐厅表、餐厅测试);
加入(r);;
}
s、 close();
}捕获(FileNotFoundException ex){
Logger.getLogger(TextCustomerDAO.class.getName()).log(Level.SEVERE,null,ex);
}        
返回餐厅;
}
我不确定如何修复此错误,因为我尝试的任何操作都会使我回到此错误。对不起,如果我找错了地方,但我正在努力

如果有人能给我指出正确的方向并帮助我纠正这个错误,我将不胜感激

谢谢


如果您需要更多代码,请询问

,因此,如果有一个int,请尝试读取其中三个int。。。如果没有三个呢?@azurefrog我理解你的意思,但如何修复它呢?在每个
s.nextInt())
之前检查
if(s.hasNextInt())
。第40行是哪一行?你正在读取一个文件,所以我建议每次从扫描仪读取一行。您可以将每一行分别解析为其组件数据。
@Override
public List<Restaurant> loadRestaurants(Path path) {
    List<Restaurant> restaurants = new ArrayList<>();   
    try (Scanner s = new Scanner(new BufferedReader(new FileReader(path.toString())))) {         
        s.useDelimiter(Character.toString(DELIMITER));
        Restaurant r;
        int restaurantId, restaurantTables, restaurantSeats;
        String restaurantName, restaurantLocation;


        while (s.hasNext()) {
            if (s.hasNextInt()) {
                restaurantId = s.nextInt();
                restaurantTables = s.nextInt();
                restaurantSeats = s.nextInt();
            }
            else {
                restaurantId = 0;
                restaurantTables = 0;
                restaurantSeats = 0;
            }
            restaurantName = s.next();
            restaurantLocation = s.next();
            s.nextLine();
            r = new Restaurant(restaurantId, restaurantName, restaurantLocation, restaurantTables, restaurantSeats);
            restaurants.add(r);
        }
        s.close();
    } catch (FileNotFoundException ex) {
        Logger.getLogger(TextCustomerDAO.class.getName()).log(Level.SEVERE, null, ex);
    }        
    return restaurants;
}