2013-01-24 52 views
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) 

它甚至不會掃描下一行。這是我的目標。掃描和閱讀。

+3

什麼是錯誤/輸出?你期望會發生什麼? –

+0

已更新以上信息 – Evorlor

回答

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

要調用上File參考Scanner類的方法。在所有調用中將theFile替換爲scnFile

其次,您正在調用next()nextDouble(),但僅檢查hasNext()一次。這可能會在某個時間點給你帶來NoSuchElementException。在你真正閱讀之前,確保你有一個可以閱讀的輸入。

+0

謝謝!只是等待計時器,所以我可以給你綠色複選標記 – Evorlor

+0

@SamuelKnox。歡迎您:)當您的問題得到不良反饋時,請不要擔心。你應該在這裏學習每一點。問題是downvoted向你展示,你可以通過搜索他們自己得到答案。這樣你會更好地學習。所以,別拿別的。 –