0

ファイル (Alice.txt) からテキストを読み取り、すべての単語を配列に入れ、単語の合計量と単語を個別にカウントする特定のコード セットがあります。

私は何かの下書きを持っていますが、私の目標への道をブロックすると、エラーが発生します。まず、コード:

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

なぜこれが起こっているのかを教えてくれる人はいますか?本当にわかりません。

4

4 に答える 4

3

hasNext()Scannerクラスのメソッドで、ストリームをトークンに解析します。
には存在しませんFile

を作成し、new Scanner(lesFil)代わりにそれを使用します。

また、2 つのリーダーは必要ありません。

于 2013-10-11T17:46:54.033 に答える
2

クラスにはメソッドFileがありませんhasNext()Scannerおそらく、を使用してを作成したかったでしょうFileScannerクラスにはhasNext()メソッドがあります。

Scanner scanner = new Scanner(lesFil);
于 2013-10-11T17:47:23.820 に答える
0

while は ; で終わるべきではありません。

于 2013-10-21T01:28:56.997 に答える
0

ではなく、に電話readLine()したい。ファイルは反復子ではありません。行ごとの読み取りを行うことが、 を作成した理由です。が必要な場合は、他の人が言ったように作成してください。brhasNext()lesFilBufferedReaderhasNext()Scanner

于 2013-10-11T17:47:21.593 に答える