gpt4 book ai didi

java - 来自文件的扫描器 InputMismatchException

转载 作者:行者123 更新时间:2023-11-30 07:58:21 25 4
gpt4 key购买 nike

我的第一步是使用 Java,这是我的问题:

1.) rawData.txt 可以读取:

import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
import static java.lang.System.out;

class ReadAndWrite {

public static void main(String args[])
throws FileNotFoundException {

Scanner diskScanner = new Scanner(new File("rawData.txt"));
String diskString;
diskString = diskScanner.nextLine();
out.println(diskString);
diskScanner.close();
}
}

eclipse 控制台的结果是:

>19.5 5 

所以我猜内容是可以阅读的。

但是:nextDouble()nextInt() 将不起作用:

import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;

class ReadAndWrite {

public static void main(String args[])
throws FileNotFoundException {

Scanner diskScanner = new Scanner(new File("rawData.txt"));
double unitPrice, quantity;
unitPrice = diskScanner.nextDouble();
quantity = diskScanner.nextInt();

[...]

diskScanner.close();

}
}

来自控制台的错误信息是:

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.nextDouble(Scanner.java:2413)
at ReadAndWrite.main(ReadAndWrite.java:16)

那么我该怎么做才能理解这个问题呢?

最佳答案

我刚刚在我的机器上做了一个测试,我发现了问题。预期的 double 格式取决于 Locale。在一些国家,十进制数字用 , 分隔,有些用 . 分隔。

    Scanner diskScanner = new Scanner(new File("rawData.txt")).useLocale(Locale.ENGLISH);

将解决问题。否则将您的文件从

19.5 5

19,5 5

关于java - 来自文件的扫描器 InputMismatchException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40522243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com