2

我无法从一个简单的文本文件中读取,似乎无法弄清楚原因。我以前做过这个,我不确定问题是什么。任何帮助,将不胜感激!

import java.io.File;
import java.util.Scanner;

public class CS2110TokenReader {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        File theFile = new File("data1.txt");
        Scanner scnFile = new Scanner(theFile);

        try {
            scnFile = new Scanner(theFile);
        } catch (Exception e) {
            System.exit(1);
        }
        while (theFile.hasNext()) {
            String s1 = theFile.next();
            Double d1 = theFile.nextDouble();

            System.out.println(s1 + "   " + d1);
        }

    }

}

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    The method hasNext() is undefined for the type File
    The method next() is undefined for the type File
    The method nextDouble() is undefined for the type File

    at CS2110TokenReader.main(CS2110TokenReader.java:20)

它甚至不会扫描下一行。那是我的目标。扫描和阅读。

4

1 回答 1

6
while (theFile.hasNext()) {  // change to `scnFile.hasNext()`
    String s1 = theFile.next();  // change to `scnFile.next()`
    Double d1 = theFile.nextDouble();  // change to `scnFile.nextDouble()`

    System.out.println(s1 + "   " + d1);
}

您正在引用引用Scanner类的方法File。在所有调用中替换theFile为。scnFile

其次,您正在调用next()and nextDouble(),但只检查hasNext()一次。这可能会NoSuchElementException在某个时间点让你失望。在实际阅读之前,请确保您有一个要阅读的输入。

于 2013-01-24T19:27:09.660 回答