1

我的问题是当我运行我的主要方法时,什么都没有打印。我对HashSets 很陌生,我担心它因为一些非常愚蠢的事情而不起作用。 dic最初是 an ArrayList,我只是想将其转换为HashSets 以提高效率。

private Set<String>dic = new HashSet<String>(100000);
public void dictionary(){//reads/intializes arraylist dic from a file
    File data = new File("dictionaryForJava.txt");
    Scanner scanner=null;
    try {
        scanner = new Scanner(data);
        while (scanner.hasNextLine()) {
            dic.add(scanner.nextLine());
        }
    } catch (FileNotFoundException fnfe) {}
    if(scanner!=null)scanner.close(); // need if if file missing
}
public void print () throws IOException{
     Iterator it = dic.iterator();   
     while(it.hasNext())
         {
              String value =(String)it.next();
              System.out.println(value);  
         }
}
public static void main (String[] args)throws IOException{
    words test = new words();
    test.dictionary();
    test.print();
}
4

1 回答 1

3

很有可能dictionaryForJava.txt找不到该文件。你不能在不打印一些调试信息的情况下吃掉异常,试试这个:

catch (FileNotFoundException fnfe) {fnfe.printStackTrace();}

如果读取文件有问题,上面会在控制台中显示。

于 2013-03-14T21:34:32.973 回答