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)并使用它。

你也不需要你的两个读者。

于 2013-10-11T17:46:54.033 回答
2

该类File没有hasNext()方法。也许您想创建一个Scanner使用File. 该类Scanner有一个hasNext()方法。

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

你想打电话readLine()br而不是hasNext()打电话lesFil。文件不是迭代器;逐行阅读是您创建BufferedReader. 如果你想要一个,像其他人所说的那样hasNext()创建一个。Scanner

于 2013-10-11T17:47:21.593 回答
0

你的 while 不应该以 ; 结尾

于 2013-10-21T01:28:56.997 回答