从文本文件中读取整数

时间:2017-06-05 21:01:29

标签: java java.util.scanner

我正在尝试从文本文件中读取整数,但我失败了。 (它甚至无法读取第一个整数)

public void readFromFile(String filename) {
    File file = new File(filename);
    try {
        Scanner scanner = new Scanner(file);
        if (scanner.hasNextInt()) {
            int x = scanner.nextInt();
        }
        scanner.close();

    } catch (FileNotFoundException e) {
        System.out.println("File to load game was not found");
    }
}

我得到的错误是:NoSuchElementException。 该文件如下所示:

N,X1,Y1,X2,Y2,X3,Y3

在此示例中,n等于3。

我在主方法中将此方法称为a:

readFromFile("file.txt");

2 个答案:

答案 0 :(得分:1)

我不确定在将它们与字符串分开后是否只显示整数。如果是这种情况,我建议你使用BufferedInputStream。

    try(BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)))){
        String input = br.readLine();
        int count = 0;
        for(int i = 0; i < input.length()- 1; i++){
            if(isNumeric(input.charAt(i))){

                // replace the Sysout with your own logic
                   System.out.println(input.charAt(i));
                }
            }
        } catch (IOException ex){
            ex.printStackTrace();
        }

其中isNumeric可以定义如下:

private static boolean isNumeric(char val) {
    return (val >= 48 && val <=57);
}

答案 1 :(得分:0)

[ts] Property 'Server' does not exist on type 'typeof "http"'使用空格作为默认分隔符。您可以使用Scanner进行更改。请参阅此处:https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html