2013-10-11 51 views
0

我有一組特定的代碼,它將從文件(Alice.txt)中讀取文本,然後將每個單詞放入一個數組中並計算總字數和單詞。在Java中嘗試使用hasNext時出現錯誤

我有一些東西的草稿,但阻止我走向我的目標是我得到一個錯誤。首先,代碼:

import java.util.*; 
import java.io.*; 

public class Oblig3A{ 
    public static void main(String[]args){ 
    OrdAnalyse O = new OrdAnalyse(); 
    OrdAnalyse.analyseMet(); 
    } 
} 

class OrdAnalyse { 
    public static void analyseMet() { 
    Scanner Inn = new Scanner(System.in); 
    System.out.println("Vennligst oppgi navn til lagringsfilen: "); 
    String Filen; 
    Filen = Inn.nextLine(); 

    try { 
     File skrivFil = new File(Filen); 
     FileWriter fw= new FileWriter(skrivFil); 
     BufferedWriter bw = new BufferedWriter(fw); 

     File lesFil = new File ("Alice.txt"); 
     FileReader fr = new FileReader(lesFil); 
     BufferedReader br = new BufferedReader(fr); 

     int teller=0; 
     int i=0; 
     while(lesFil.hasNext()){ 
     teller++; 
     lesFil.next(); 
     } 
     String[] ordArray = new String[teller]; 
     int[] antall = new int[teller] 
     do{ 
     ordArray[i]=lesFil.next(); 
     } 
     while(lesFil.hasNext()); 
     System.out.println(ordArray.length); 

    }catch (Exception e){ 
     System.out.print(e); 
    } 
    } 
} 

而且我得到這個錯誤:

Oblig3A.java:29: error: cannot find symbol 
     while(lesFil.hasNext()){ 
        ^
    symbol: method hasNext() 
    location: variable lesFil of type File 

是否有任何人誰可以給我一個指針,爲什麼這是怎麼回事?我真的不知道。

回答

3

hasNext()Scanner class中的一種方法,它將流解析爲令牌。
它不存在於File

您想創建一個new Scanner(lesFil)並使用它。

你也不需要你的兩個讀者。

+0

有什麼想法,爲什麼我現在得到一個NoSuchElementException?我重新編寫代碼,以便它創建一個名爲:Opplysning.txt的文件,而不是使用掃描器並輸入變量Filen,然後進行建議的更改,甚至可以確保在Alice.txt和Opplysning.txt中與程序相同的文件夾。但無濟於事。當我刪除try-catch-loop時,它說它需要在第一個文件作者行上聲明的異常,是不是問題? – Makri

+0

@Makri:您需要了解已檢查的異常情況。 – SLaks

+0

好的,所以我明白它可能是下一個運營商之一呢?我會嘗試看看我能找到什麼。 可能是因爲我有兩個循環讀完整個文件到最後?所以它在第一個循環後讀到最後,當第二個循環開始時,它沒有找到任何元素,拋出異常? – Makri

0

您想在br上撥打readLine(),而不是hasNext()lesFil。文件不是迭代器;做逐行閱讀是爲什麼你創建了BufferedReader。如果你想要一個hasNext(),像其他人所說的那樣創建一個Scanner

0

你的時間不應該以a結束;

相關問題