我想读取文件作为输入
java Nbody 10 2 < file.txt
但是,当我写以下内容时:
import java.io.*;
import java.util.*;
public class Nbody {
public static void main(String[] args) {
//command line arguemnet
double T = Double.parseDouble(args[0]);
double dt = Double.parseDouble(args[1]);
//number of particles
int n = StdIn.readInt();
}
}
我收到以下错误
试图从标准输入中读取一个'int'值,但是没有 更多令牌可用
file.txt包含一个整数,似乎无法将文件作为StdIn读取
答案 0 :(得分:-1)
使用命令行,可以在主方法中将filePath作为参数传递。
您可以使用Scanner
来读取文件数据
public static void main(String args []){
double T = Double.parseDouble(args[0]);
double dt = Double.parseDouble(args[1]);
Scanner sc = new Scanner(new File(args[2]));
while(sc.hasNextLine()) System.out.println(sc.nextLine());
}
您可以在命令行中传递文件路径。
java Nbody 10 2“ /xxx/yyyy/file.txt”
,或者您可以使用BufferedReader
和FileReader
public static void main(String[] args) {
double T = Double.parseDouble(args[0]);
double dt = Double.parseDouble(args[1]);
String input = null;
int number = 0;
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(args[2]));
input = bufferedReader.readLine();
number = Integer.parseInt(input);
} catch (NumberFormatException ex) {
System.out.println("Not a number !");
} catch (IOException e) {
e.printStackTrace();
}
}
注意::在Eclipse中,您可以进入启动配置编辑器,并从Eclipse中手动指定要在启动时添加的参数。