2016-12-07 72 views
0

我做了一個方法來獲取數組中最重複的單詞。在主要方法中,我使用Scanner類來讀取我的文件。我的文件是明星閃爍的橫幅歌詞。然後我掃描文件並將其值賦給一個字符串。然後我分割字符串並將其分配到一個數組中。當我實例化最重複的方法由於某種原因,我總是得到「文件未找到」?我不明白代碼有什麼問題?請幫忙,謝謝!我的程序沒有讀取我的文本文件?

import java.util.Scanner; 
import java.io.*; 
public class Task2Ref23 { 
    public static String mostRepeated(String [] a){ 
     int count=1, tempCount=1; 
     String temp=""; 
     String popular = a[0]; 
     for (int i=0; i<a.length-1; i++){ 
      temp=a[i]; 
      if(temp==a[i+1]) tempCount++; 
      else if (tempCount > count){ 
       popular=temp; 
       count= tempCount; 
       tempCount=1; 
      } 
     } if (tempCount > count) popular = temp; 
     return popular; 
    } 

    public static void main(String[] args) { 
     // Erik Landaverde 
     String temp= ""; 
     try{ 
      Scanner scan = new Scanner (new File("lyricFile")); 
      while (scan.hasNext()){ 
       temp= scan.next(); 
      } 
      String [] myArray=temp.split(" "); 
      String mostRepeated = mostRepeated(myArray); 
      System.out.print(mostRepeated + " "); 
      scan.close(); 
     } 
     catch (FileNotFoundException e){ 
      System.out.println("File not found."); 
     } 
    } 
} 
+0

我認爲你的文件後缺少.txt。嘗試lyricFile.txt(或任何類型的文件),看看它是否運行 –

+1

我沒有看到FileNotFoundException如何可以在mostRepeated()內拋出,因爲你永遠不會與文件交互。你應該仔細檢查你的蹤跡。有一件事我能想到的是,你沒有在你的文件中指定任何路徑,所以你的IDE可能會在你的項目文件中尋找這個文件的某個地方,而你的文件可能位於你的計算機上的其他地方。您應該嘗試查找您的ide查找文件的位置,或指定確切的路徑。我也建議@ TheJavaKing的回答 – StaticShadow

+0

發佈你的完整堆棧跟蹤。 –

回答

0

嘗試:

Scanner scan = new Scanner (new File("lyricFile.txt"));

或者,如果它不是一個.txt文件,正確的延伸,而不是你有什麼

+0

我嘗試添加.txt,但我仍然收到相同的消息。我創建了一個文件夾,以便Class和lyricFile在那裏。然後沒有。然後,我創建了一個包,並將該類和lyricFile移動到那裏並保持不動。我在IDE中創建了文件「lyricFile」。 – Ricardo

0

「找不到文件」由於該文件不存在於文件系統中而產生的消息。我注意到在你給出的代碼中,如果「lyricFile」文件不存在,那麼它會拋出FileNotFoundException異常。在捕獲部分,您添加打印輸出讓你。

Scanner scan = new Scanner (new File("lyricFile")); 

例外處理部分在你的代碼

catch (FileNotFoundException e){ 
    System.out.println("File not found."); 
} 

所以,你可能需要如下更新您的代碼來創建新的文件,如果文件不可用。

File file=new File("lyricFile"); 
    //Check whether file not exist then it will create the file 
    if(!file.exists()){ 
     file.createNewFile(); 
    } 
    Scanner scan = new Scanner (file); 

請注意,您需要爲IOException添加catch部分。

相關問題