Текстовый файл Buffered Reader

Как мне изменить befferedreader в моем коде на Scanner, потому что мне не разрешено использовать BufferedReader?? или это вообще возможно??

public static void Option3Method() throws IOException
{ 
   FileReader fr = new FileReader("wordlist.txt");
   BufferedReader br = new BufferedReader(fr); 
   String s;
   String words[]=new String[500];
   String word = JOptionPane.showInputDialog("Enter a word to search for");
   while ((s=br.readLine())!=null)
   { 
     int indexfound=s.indexOf(word);
     if (indexfound>-1)
     { 
        JOptionPane.showMessageDialog(null, "Word was found");
     }
     else if (indexfound<-1)
     {
        JOptionPane.showMessageDialog(null, "Word was not found");}
     }
     fr.close();
   }
}

person user2205055    schedule 07.04.2013    source источник


Ответы (4)


Заменять

FileReader fr = new FileReader("wordlist.txt"); BufferedReader br = new BufferedReader(fr);

с

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

И заменить

while ((s=br.readLine())!=null) {

с

while (scan.hasNext()) {

            s=scan.nextLine();
        }
person Ankur Shanbhag    schedule 07.04.2013
comment
Это дает мне ошибку, говоря, что String s не определен?? - person user2205055; 07.04.2013
comment
Итак, объявите переменную с именем 's'. Я не дал вам полностью готовый код, который вы можете напрямую использовать в своем коде. Это всего лишь пример, который указывает, какую часть существующего кода нужно изменить и чем. - person Ankur Shanbhag; 07.04.2013

Если вы посмотрите на класс Scanner, вы увидите, что у него есть конструктор, который принимает файл, который, в свою очередь, может быть создан с помощью пути String. Класс Scanner имеет метод, аналогичный методу readLine(), а именно метод nextLine().

person Davey Chu    schedule 07.04.2013

Вы можете использовать конструктор сканера, который берет файл, затем считывает строки с помощью этого сканера, используя nextLine(). Чтобы проверить, есть ли еще строки для чтения, используйте hasNextLine()

person A4L    schedule 07.04.2013

Не проверял, но должно работать.

public static void Option3Method() throws IOException
{ 
   Scanner scan = new Scanner(new File("wordlist.txt"));
   String s;
   String words[]=new String[500];
   String word = JOptionPane.showInputDialog("Enter a word to search for");
   while (scan.hasNextLine())
   { 
     s = scan.nextLine();
     int indexfound=s.indexOf(word);
     if (indexfound>-1)
     { 
        JOptionPane.showMessageDialog(null, "Word was found");
     }
     else if (indexfound<-1)
     {
        JOptionPane.showMessageDialog(null, "Word was not found");}
     }
   }
}
person nommyravian    schedule 07.04.2013