从文件中读取 space 分隔的数字

Reading space separated numbers from a file

我正在放寒假并努力使我的 Java 技能恢复正常,因此我正在从事一些我在 codeeval 上发现的随机项目。我在 java 执行 fizzbuzz 程序时无法打开文件。我已经关闭了实际的 fizzbuzz 逻辑部分并且工作正常,但打开文件证明有问题。

据推测,文件将作为 main 方法的参数打开;所述文件将至少包含 1 行;每行包含 3 个数字,由 space 分隔。

public static void main(String[] args) throws IOException {
    int a, b, c;        
    String file_path = args[0];

    // how to open and read the file into a,b,c here?

    buzzTheFizz(a, b, c);

}

您可以像这样使用Scanner

Scanner sc = new Scanner(new File(args[0]));
a = sc.nextInt();
b = sc.nextInt();
c = sc.nextInt();

默认情况下,扫描器使用空格和换行符作为分隔符,这正是您想要的。

try {
    Scanner scanner = new Scanner(new File(file_path));
    while( scanner.hasNextInt() ){
      int a = scanner.nextInt();
      int b = scanner.nextInt();
      int c = scanner.nextInt();
      buzzTheFizz( a, b, c);
    }
} catch( IOException ioe ){
    // error message
}

使用循环读取整个文件,玩得开心:

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

public class Main {

public static void main(String[] args) {
    int a = 0;
    int b = 0;
    int c = 0;
    String file_path = args[0];

    Scanner sc = null;
    try {
        sc = new Scanner(new File(file_path));

        while (sc.hasNext()) {
            a = sc.nextInt();
            b = sc.nextInt();
            c = sc.nextInt();
            System.out.println("a: " + a + ", b: " + b + ", c: " + c);
        }
    } catch (FileNotFoundException e) {
        System.err.println(e);
    }
}
}