Экран входа в систему Java с использованием текстового файла - PullRequest
0 голосов
/ 11 сентября 2010

Я создаю Java-приложение и мне нужно получить ПИН-коды пользователя из текстового файла. Я использовал следующий код ниже, но он не работает должным образом. Может ли кто-нибудь помочь мне в ближайшее время .....

    String typedPIN="";   
    Menus obj1=new Menus();
    BufferedReader getIt=new BufferedReader(new InputStreamReader(System.in));
    String userPIN="";
    try{
        BufferedReader br = new BufferedReader(new FileReader(new File("D:\\Studies\\BCAS\\HND\\Semester 1\\Programming Concepts\\Assignment\\AccountPIN.tab")));
        String strLine=null                    ;
        System.out.println("Enter PIN");
        userPIN=getIt.readLine();  
        while ((strLine = br.readLine()) != null)   {          
            if(userPIN.equals(strLine)){
                System.out.println("You have login!");
                obj1.MainMenu();
            }
        }    
    }catch (Exception e){//Catch exception if any
            System.err.println("Error: " + e.getMessage());
    }
 }   

1 Ответ

2 голосов
/ 11 сентября 2010

Предполагая, что это ваши входные данные

PIN AccountNo Balance
1598 01-10-102203-0 95000
4895 01-10-102248-0 45000
9512 01-10-102215-0 125000
6125 01-10-102248 85000

Вам нужно будет разбить каждую строку на составляющие части, для этого вы можете использовать класс Scanner, так как это позволит вам извлечь пин-код / ​​номер счета в виде строк и остаток в виде двойное / целое число.

В данный момент вы сравниваете пользовательский ввод со всей строкой, поэтому для входа в систему вам потребуется ввести пин 1598 01-10-102203-0 95000 вместо 1598.

Я предлагаю вам разделить это на два метода: один, который при получении файла возвращает Collection из Account объектов, и другой, который обрабатывает вход в систему.

Вы можете переписать цикл while, чтобы дать вам полезное сообщение об ошибке, если вы не получили правильный пин-код, например,

final File data = new File("D:\\Studies\\BCAS\\HND\\Semester 1\\Programming Concepts\\Assignment\\AccountPIN.tab");
Account userAcc = null;
for (Account acc : getAccounts(data)) {          
    if(userPIN.equals(acc.getPin())){
        userAcc = acc;
    }
}
if (userAcc == null) {
    obj1.MainMenu();
} else {
    // display error
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...