我的老师给了我们预先编写的扫描仪代码,但它没有用。我甚至评论了我的代码,并独立运行预编写的代码,看看它是不是我的错,但事实并非如此。 我该如何纠正老师的错误?
import java.io.*;
import java.util.*;
public class Project2
{
public static void main (String args[]) throws Exception
{
// Create a scanner to read from keyboard
Scanner infile = new Scanner ( new FileReader(args[0]) );
int count=0,sum=0, largest=Integer.MIN_VALUE,smallest=Integer.MAX_VALUE, evens=0, odds=0;
double average=0.0;
我展示的代码只是开头部分。 我该如何解决这个问题?
我的错误讯息。
Matthews-MacBook-Pro-4:Java MatthewSimon$ javac Project2.java
Matthews-MacBook-Pro-4:Java MatthewSimon$ java Project2 ints.txt
sf
sdf
e
23
6
57
5
z
sfd
34
5
^[[A^[[Afs
d
^CMatthews-MacBook-Pro-4:Java MatthewSimon$
我必须控制+ c才能退出程序。程序运行后只是一个空白行... 我顺便使用mac /终端。
答案 0 :(得分:2)
如果您只是编译代码或在IDE中运行,则默认情况下它不会处理命令行参数。
尝试:
javac Project2.java
java Project2 test.txt
这将传递一个名为test.txt的文件作为arg [0]。这假设在与Project2.java相同的目录中有一个名为test.txt的文件。
这应该让你开始。我想你想简单地遍历扫描仪并执行计算。我做了两个例子。
import java.io.*;
import java.util.*;
public class Project2
{
public static void main (String args[]) throws Exception
{
// Create a scanner to read from keyboard
Scanner infile = new Scanner ( new FileReader(args[0]) );
int count=0,sum=0, largest=Integer.MIN_VALUE,smallest=Integer.MAX_VALUE, evens=0, odds=0;
double average=0.0;
while (infile.hasNext() == true ) {
count += 1;
sum += infile.nextInt();
}
System.out.println("Count: " + count + "\tSum: " + sum);
}
}