Как искать определенное слово в текстовом файле в Java

StackOverflow https://stackoverflow.com/questions/3870513

  •  28-09-2019
  •  | 
  •  

Вопрос

Как искать определенное слово в текстовом файле в Java? Использование буферизованного читателя у меня есть этот код, но я получаю

java.lang.ArrayIndexOutOfBoundsException

Пожалуйста, помогите мне определить, что не так с моей программой.

System.out.println("Input name: ");
      String tmp_name=input.nextLine();


        try{

             FileReader fr;
      fr = new FileReader (new File("F:\\names.txt"));
      BufferedReader br = new BufferedReader (fr);
String s;
while ((s = br.readLine()) != null) {

String[] st = s.split(" ");
String idfromtextfile=st[0];
String nemfromtextfile = st[1];
String scorefromtextfile=st[2];


if(nemfromtextfile.equals(tmp_name)){
    System.out.println("found");      
}else{
    System.out.println("not found");
}



      }

  }catch(Exception e){ System.out.println(e);}

names.txt выглядит так:

1
a
0

2
b
0
Это было полезно?

Решение

Ваш код ожидает каждую строку в файле, чтобы иметь три слов с пространством. Таким образом, ваш файл должен выглядеть так:

1 a 0
2 b 0

То ArrayIndexOutOfBoundsException Происходит, если в файле есть строка, у которых нет трех слов пространства. Например, в вашем файле может быть пустая строка.

Вы можете проверить это в вашем коде, как это:

if ( st.length != 3) {
    System.err.println("The line \"" + s + "\" does not have three space-separated words.");
}

Другие советы

Вы можете использовать комбинацию шаблона / сопоставления здесь, или попробуйте Сканер. Отказ Используйте буферизованный читатель, как это:

BufferedReader in
   = new BufferedReader(new FileReader("foo.in"));

и извлечь строку с in.toString()

Если текст огромный, и вы не хотите читать его одновременно и сохранить в памяти. Вы можете постоянно читать строку с помощью readline () и искать каждую из линейки вывода для шаблона.

Вот пример того, как сделать это с помощью буферреджераСсылка текста

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top