Я подозреваю, что вы хотите прекратить поиск совпадений по имени пользователя / паролю после того, как вы его нашли ... Для этого вам нужно разорвать цикл при совпадении. Для этого вы делаете следующее:
readLoop:
while((strLine=br.readLine())!=null){
// ...
String[] splitVals = strLine.split(":");
if((name.equals(nameUser))&&(pwd.equals(passWord))){
System.out.println("welcome"+name);
break readLoop;
}
// ...
}
Кроме того, я не знаю, зачем вам нужен этот цикл:
for(int i=0;i<splitVals.length;i=i+2)
Напомним, что вы читаете файл построчно . То есть разделенный массив будет содержать имя пользователя и пароль текущей строки.
Чтобы напечатать имя пользователя / пароль, вы можете сделать что-то вроде этого:
System.out.printf("Username: %s, Password: %s%n", splitVals[0], splitVals[1]);
Я бы, вероятно, решил это, используя Scanner
. Примерно так:
import java.io.*;
import java.util.Scanner;
public class TextFile {
public static void main(String[] args) throws FileNotFoundException {
if (userPassOk("hello", "world"))
System.out.println("Welcome");
else
System.out.println("Get out!");
}
private static boolean userPassOk(String user, String pass)
throws FileNotFoundException {
Scanner s = new Scanner(new File("test.txt"));
while (s.hasNextLine()) {
String[] userPass = s.nextLine().split(":");
if (userPass[0].equals(user) && userPass[1].equals(pass))
return true;
}
return false;
}
}