我正在尝试编写程序来调用Triangle.java
。程序应该从文件读取3个整数作为标准输入并将它们用作参数。
我做了类似的事情:
Scanner input = new Scanner(System.in);
while(input.hasNextLine()) {
String TestName = input.nextLine();
int x = input.nextInt();
int y = input.nextInt();
int z = input.nextInt();
.......
}
然后我想使用x
,y
和z
作为参数。我尝试使用命令行javac Triangle.java<test.txt
在我的ubuntu机器上编译程序,然后使用java Triangle.class
运行程序。
事情似乎没有奏效。任何建议都将受到高度赞赏。
答案 0 :(得分:2)
好吧,这段代码存在一些问题,但这是你的主要问题:你阅读的内容比你有的多
String TestName=input.nextLine();
int x =input.nextInt();
int y =input.nextInt();
int z =input.nextInt();
input.nextLine()
已经阅读了整个行。所以input.nextInt()
会尝试从下一行读取整数,你甚至不知道它是否存在。
System.in
这不是问题,因为它只会提示用户输入更多的内容(尽管我不知道TestName
变量将如何用于任何用途)。但是如果你使用的是文件,这将成为一个问题。
另外,作为旁注:
您无法使用input.hasNextLine()
在Scanner
上真正呼叫System.in
,因为在该时间点,输入流中不会有下一行。您首先必须提示用户在有一行之前输入更多内容,这意味着您的while
永远不会被执行。
然而,当你使用文件时,显然检查会有效,所以你应该保留它。