使用Java中从文件读取的数据进行求和

使用Java中从文件读取的数据进行求和,java,Java,我是Java新手,遇到了一个我知道应该很容易解决的问题。然而,我不知道我错在哪里,以及如何着手解决这个问题。正如您从下面的代码片段中所看到的,我正在尝试使用经典的FileReader从一个文件中读取,并且我使用了while循环来读取整个文件。然而,这一切都很好,但是我想用read.nextdouble()乘以read.nextdouble(),但是当我尝试在我的收入所在的地方乘以它们时,它会抛出一条错误消息。任何解决方案都会很好!谢谢 FileReader file = new File

我是Java新手,遇到了一个我知道应该很容易解决的问题。然而,我不知道我错在哪里,以及如何着手解决这个问题。正如您从下面的代码片段中所看到的,我正在尝试使用经典的FileReader从一个文件中读取,并且我使用了while循环来读取整个文件。然而,这一切都很好,但是我想用read.nextdouble()乘以read.nextdouble(),但是当我尝试在我的收入所在的地方乘以它们时,它会抛出一条错误消息。任何解决方案都会很好!谢谢

    FileReader file = new FileReader(fileName);
    Scanner read = new Scanner(file);
        while (read.hasNext()) {
            System.out.print("Room Type: " + read.next());
            System.out.print(", Bookings: " + read.nextInt());
            System.out.print(", Room Price: " + read.nextDouble());
            System.out.println(", Income: " + read.nextDouble() * Double.valueOf(read.nextInt()));
            System.out.println(", Tax: " + TaxRate + "\n\n");
        }
这是错误消息:

Room Type: Single, Bookings: 5, Room Price: 23.5Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextDouble(Scanner.java:2564)
at RoomTaxSystem.Room_Tax_System.main(Room_Tax_System.java:24)
这是我试图从文件中读取的数据

Single

5

23.50

Double

3

27.50

Suite

2

50.00


引发InputMismatchException是因为您的第二个read.nextDouble()试图将文件中的“Double”解释为Double类型。如果要使用第一个read.nextDouble()值,则必须将其保存在一个变量中,正如克劳斯在回答中所说。

由于第二个read.nextDouble()试图将文件中的“Double”解释为Double类型,因此引发InputMismatchException。如果要使用第一个read.nextDouble()值,则必须将其保存在一个变量中,正如克劳斯在回答中所说的那样。

检查一下,看看它是否能帮助您!首先,我建议您将数据读入数据结构:可能是预订对象的数组列表。一旦读取了数据,就可以进行处理。更容易调试,压力更小:-)您可以添加数据文件的示例吗?文件中可能有问题。我刚刚添加了文件中的数据,以向您显示我试图读取的内容。:)不能读取值两次。您必须将它们保存在一个变量中,然后您可以使用它们来计算您的值检查一下,看看它是否可以帮助您!首先,我建议您将数据读入数据结构:可能是预订对象的数组列表。一旦读取了数据,就可以进行处理。更容易调试,压力更小:-)您可以添加数据文件的示例吗?文件中可能有问题。我刚刚添加了文件中的数据,以向您显示我试图读取的内容。:)不能读取值两次。您必须将它们保存在变量中,然后才能使用它们计算您的值感谢您的响应!这起作用了。还有一个问题,是否有一种方法可以让我根据收入变量的数量计算出最终的总额?例如,如果我想知道收入总额是多少,我可以这样做吗?当然,在while循环外声明一个变量double total=0,在循环内将收入加到总额中。在循环之后,您可以打印总数量,这是完美的!谢谢你的帮助:)谢谢你的回复!这起作用了。还有一个问题,是否有一种方法可以让我根据收入变量的数量计算出最终的总额?例如,如果我想知道收入总额是多少,我可以这样做吗?当然,在while循环外声明一个变量double total=0,在循环内将收入加到总额中。在循环之后,您可以打印总数量,这是完美的!谢谢你的帮助:)
FileReader file = new FileReader(fileName);
Scanner read = new Scanner(file);
    while (read.hasNext()) {
        System.out.print("Room Type: " + read.next());
        int bookings = read.nextInt();
        System.out.print(", Bookings: " + bookings);
        double price = read.nextDouble();
        System.out.print(", Room Price: " + price);
        System.out.println(", Income: " + bookings * price);
        System.out.println(", Tax: " + TaxRate + "\n\n");
    }