2014-05-14 68 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)); 
    } 

} 

}