2015-04-09 4 views
-5

Я хочу написать функцию в Java, которая ищет конкретную строку в текстовом файле. Какую петлю я должен использовать и как? (Скажем, это петля в то время, что такое состояние?)Поиск строки в файле

+0

Зависит от того, как вы читаете в текстовом файле. – DigitalNinja

+0

Используйте любой цикл: 'for (;;)', 'while (...)', 'do {...} while (...)'. Это можно сделать несколькими способами. –

ответ

3

Наиболее часто используемая петлей для этого является while циклом, потому что вы необходимо выполнить цикл и сравнить, если строка, удаленная из файла, не null. Ну, это сказано, давайте посмотрим какой-то код. Решение, которое вы можете написать, - это открыть файл сначала в экземпляре BufferedReader, после чего вы будете читать его по очереди и посмотреть, содержит ли строка строку, которую вы ищете. Если это так, вы можете использовать переменную boolean и назначить ее true, иначе назначьте ее false. Вы можете иметь что-то вроде этого в Java:

public static boolean findStringFile(String lookingForMe, String pathFile) 
{ 

    boolean found = false; 
    try{ 
     BufferedReader br = new BufferedReader(new FileReader(pathFile)); 
     try{ 
      String line; 
      while ((line = br.readLine()) != null) 
      { 
       if (line.contains(lookingForMe)) 
        found = true; 
      } 
     } finally { 
      br.close(); 
     } 
    } catch(IOException ioe) 
    { 
     System.out.println("Error while opening the file !"); 
    } 
    return found; 
} 

Эта функция получит String lookingForMe в качестве первого параметра, представляющего строку, которую Вы ищете в файле, в качестве второго параметра String pathFile, который представляет собой путь к файлу (это может быть только nameOfTheFile.extension, когда он находится в корне проекта).

Надеюсь, это может вам помочь.

Редактировать

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

BufferedReader br = new BufferedReader(new FileReader(pathFile)); 

      String line; 
      while ((line = br.readLine()) != null) 
      { 
       if (line.contains(lookingForMe)) 
        found = true; 
      } 

Цель «попробовать», чтобы избежать подобных проблем, отображая сообщение об ошибке пользователя (тот, указанный с system.out.println("Your error message")).

Соответствующий код (во избежание проблем, перечисленных выше), который вы должны использовать, - это тот, у которого есть блок try (первый).

Для дальнейшего объяснения по поводу исключений в Java, я рекомендую посетить это: https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html

+0

Спасибо, много! это, безусловно, помогает. Последний вопрос - в чем смысл слова «try» в коде? – user3161261

+0

Я обновил свой ответ (проверьте часть редактирования) – KaStuxNetCu

-1

То, что я обычно использую это BufferedReader и создать время цикл, как

while((line = reader.readLine()) != NULL) { 
    //do stuff 
} 
+0

Не downvoter, но я думаю, вы могли бы улучшить это сообщение, чтобы сделать его более понятным и понятным для OP и других пользователей. –

Смежные вопросы