从文件中读取 - 错误的文件类型?

时间:2013-01-24 19:24:52

标签: java eclipse file

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

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)

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

1 个答案:

答案 0 :(得分:5)

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()nextDouble(),但只检查hasNext()一次。这可能会让你在某个时间点NoSuchElementException。在你真正阅读之前,请确保你有一个阅读的输入。