2015-04-23 3 views
1

Как создать программу, которая будет только продолжить, если конкретные данные находятся в текстовом файле. Можно ли использовать BufferedReader/FileReader для чтения и поиска в каждой строке, пока не найдет совпадающие входные данные от пользователя. Пусть говорят, я создаю форму входа и данные из текстового файла будет:Как фильтровать определенную строку в текстовом файле?

username;password 
username1;password1 

Так вот я совсем запутался с IF-заявление, как мне сделать это можно прочитать каждую строку текстовый файл, пока он не найдет правильное совпадение и разрешит пользователю перейти к следующему кадру?

+1

Как вы говорите, перебирать каждую строку и использовать 'Струнный # contains'. ** Примечание ** это действительно действительно действительно не способ реализовать что-либо «безопасное» - использовать только для ученых. – Mena

+0

что-то вроде этого: http://stackoverflow.com/a/326440/3419242; и что-то вроде этого, чтобы сделать проверку: http://stackoverflow.com/a/2275035/3419242; вероятно, это не лучший способ сделать это, поэтому я не стану использовать его как awnser – xanexpt

+0

использовать инструкцию 'break' внутри цикла while. –

ответ

2

Если я правильно читать это, попробуйте следующее:

List<String> credentials = new ArrayList<>(); 
// Populate this list with all of your credentials 

BufferedReader bReader = new BufferedReader(new FileReader(textFile)); 
boolean foundCredentials = false; 

String line; 
while ((line = bReader.readLine()) != null) { 
    // Set your condition to analyze the line and find the credentials you are looking for 
    if (credentials.contains(line)) { 
     foundCredentials = true; 
     break; 
    } 
} 
bReader.close(); 

if (foundCredentials) { 
    // Proceed to next frame 
} 
+0

Спасибо, но что, если в текстовом файле много данных? –

+0

@NazhirinImran Код будет читаться до тех пор, пока он не найдет нужные вам данные, затем он перестанет читать и закрывает файл – Shar1er80

+0

Да, я знаю, но в выражении if вы выписываете 'if (line.contains (« username: password ») || line.contains ("username1: password1")) 'Итак, представьте, если в текстовом файле есть сотни учетных данных пользователя, как я могу выписать все учетные данные в инструкции if? –

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