Java扫描程序不会读取args

时间:2014-07-11 00:14:04

标签: java input

我的老师给了我们预先编写的扫描仪代码,但它没有用。我甚至评论了我的代码,并独立运行预编写的代码,看看它是不是我的错,但事实并非如此。 我该如何纠正老师的错误?

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 /终端。

1 个答案:

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