2014-05-14 37 views
0

我正在写一个程序来读取一个文本文件,存储在一个树形图,然后打印出单词频率(wordcount)到控制台。我一直得到FileNotFoundException“我想”我几乎完成了,剩下的代码。任何帮助,指针,建议和提示,将不胜感激。谢谢。下面的代码WordCount与树形图

import java.util。*;

/** * * @author * */

公共类字计数{

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    TextFileInput take = new TextFileInput("noteFile.txt"); 

    String m = take.readLine(); 
    String [] input = m.split("[ \n\t\r,.;:!?(){}}]"); 

TreeMap <String, Integer> myMap = new TreeMap <String, Integer>(); 

    /**Set set = myMap.entrySet(); 
    Iterator i = set.iterator(); 
    Map.Entry <String, Integer> me; **/ 

    for(int f = 0; f < input.length; f++) {   
     String key = input[f].toUpperCase(); 
     if(input[f].length() > 1) { 
      if(myMap.get(key) == null) { 
       myMap.put(key, 1); 
       } 
      else { 
        int value = myMap.get(key).intValue(); 
        value++; 
        myMap.put(key, value); 
      } 
     }  
    }  
    /**while(i.hasNext()) { 
      me = (Map.Entry)i.next(); 
      System.out.print(me.getKey() + ": "); 
      System.out.println(me.getValue()); **/ 


    for(Map.Entry<String, Integer> entry : myMap.entrySet()) { 
     System.out.println(entry.getKey() + " : "+ entry.getValue()); 
    } 

} 
} 

}

+1

我不知道这是否是错误在你的问题或者您的真实代码,但你有一些额外的'}'结尾。另外“*我不断收到'FileNotFoundException' *”你如何运行你的代码?你的控制台在哪个位置?您正在试图阅读的文件位于何处? “* ...和其他一些*”其他错误是什么? – Pshemo

+0

找到的文件位于笔记文件通常的位置。它的右下方是JRE系统,但不是在其中。我不知道这个地方的名字是什么(对不起)。我将我的代码作为Java文件运行。我使用TextFileInput来读取代码。 – user3059254

回答

0

TextFileInput - 我不知道这件事。您可以使用文件和扫描仪从文件中读取数据。 给出文件的绝对路径。例如。 C://notepad.txt(对于windows)

此外,您正在从文件中读取一行。你可以在while循环中添加它。并打印树形图,你可以做如下,

for(String entry : myMap.keySet()) { 
    System.out.println(entry + " : "+ myMap.get(entry)); 
} 

和完整的代码如下,

import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.*; 

public class WordCount { 

public static void main(String[] args) throws FileNotFoundException { 

    File file = new File("C://notepad.txt"); 
    Scanner scanner=new Scanner(file); 

    TreeMap <String, Integer> myMap = new TreeMap <String, Integer>(); 

    while(scanner.hasNext()) 
    { 
    String m = scanner.nextLine(); 
    String [] input = m.split("[ \n\t\r,.;:!?(){}}]"); 

    for(int f = 0; f < input.length; f++) {   
     String key = input[f].toUpperCase(); 
     if(input[f].length() > 1) { 
      if(myMap.get(key) == null) { 
       myMap.put(key, 1); 
       } 
      else { 

        myMap.put(key, (myMap.get(key))+1); 
      } 
     }  
    }  
    } 

    for(String entry : myMap.keySet()) { 
     System.out.println(entry + " : "+ myMap.get(entry)); 
    } 

} 

}