从文件中读取空格分隔的数字

时间:2015-01-03 16:07:44

标签: java file

我在冬天休息时试图让我的Java技能恢复到鼻烟,所以我正在研究我在codeeval上发现的一些随机项目。我在执行fizzbuzz程序的java中打开文件时遇到问题。我有实际的fizzbuzz逻辑部分,工作得很好,但打开文件证明是有问题的。

所以假设一个文件将作为main方法的参数打开;所述文件至少包含1行;每行包含3个以空格分隔的数字。

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);

}

3 个答案:

答案 0 :(得分:1)

你可以这样使用Scanner;

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

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

答案 1 :(得分:1)

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
}

答案 2 :(得分:1)

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

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);
    }
}
}