2016-12-07 6 views
0

Я сделал метод, чтобы захватить самые повторяющиеся слова массива. В основном методе я использую класс Scanner для чтения моего файла. Мой файл - это звездная баннерная лирика. Затем я просмотрел файл и присвоил его значение строке. Затем я разбил строку и назначил ее в массив. Когда я создаю экземпляр метода mostRepeated По какой-то причине я всегда получаю «файл не найден»? Я не понимаю, что не так с кодом? пожалуйста, помогите, спасибо!моя программа не читает мой текстовый файл?

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(), поскольку вы никогда не взаимодействуете с файлом. Вы должны дважды проверить свой след. Одна вещь, о которой я могу думать, это то, что у вас нет пути, указанного в вашем файле, поэтому ваша среда разработки, вероятно, ищет где-то внутри файлов проекта для файла, а ваш файл, скорее всего, находится в неправильном месте или где-то еще на вашем компьютере , Вы должны попытаться найти, где ваш идеал ищет файлы, или указать точный путь. Я также хотел бы предложить @ TheJavaKing ответ – StaticShadow

+0

Опубликовать полный след стека. –

ответ

0

Try:

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

Или, если это не .txt файл, правильное расширение, вместо того, что у вас есть

+0

Я попытался добавить .txt, но я все равно получаю то же сообщение. Я создал папку, так что там есть Class и lyricFile. Тогда ничего. Затем я создал пакет и переместил класс и лирику. Файл «lyricFile» я создал его в среде IDE. – 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); 

Обратите внимание, что вам нужно добавить секцию catch для исключения IOException.