我在冬天休息时试图让我的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);
}
答案 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);
}
}
}