尝试在Java中使用hasNext时出错

时间:2013-10-11 17:45:22

标签: java arrays count filereader filewriter

我有一组特定的代码,它将从文件(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 个答案:

答案 0 :(得分:3)

hasNext()Scanner class中的一种方法,它将流解析为令牌。
它不存在于File

您想创建一个new Scanner(lesFil)并改为使用它。

您也不需要两位读者。

答案 1 :(得分:2)

File类没有hasNext()方法。也许您想使用Scanner创建FileScanner class has a hasNext()方法。

Scanner scanner = new Scanner(lesFil);

答案 2 :(得分:0)

您想要readLine()上的br,而hasNext()上的lesFil。文件不是迭代器;逐行阅读是您创建BufferedReader的原因。如果您想要hasNext(),请像其他人一样创建Scanner

答案 3 :(得分:0)

你的时间不应该以a结尾;

相关问题