Сравнение пользовательского ввода с текстовым файлом (чтение текстового файла) - PullRequest
0 голосов
/ 28 февраля 2020

У меня проблемы с тем, чтобы программа прочитала информацию в текстовом файле и сравнила ее с пользовательским вводом. Если ввод и текст соответствуют меню, то будет отображено меню, если не пользователь будет заблокирован. Я слышал о буферной строке, но я не уверен, как она работает. Любая помощь будет оценена !!

import java.util.Scanner;
import java.io.*;


public class test123{
public static void main(String[] args)throws IOException  {
    Scanner sc1 = new Scanner (System.in);

    System.out.println("Please enter correct credentials to log in");
    System.out.println("Username: ");
    System.out.println("Password: ");
    String userName = sc1.nextLine();
    String passWord = sc1.nextLine();

    File inFile = new File ("employee.txt");



    while (sc1.hasNextLine())
    {          
        Scanner sc = new Scanner (inFile);
        String [] arrayName= new String [4];
         String uName = arrayName[0];
         String pWord = arrayName[1];   
         String line = sc.nextLine();
         line = sc.nextLine();

         if(userName.equals(uName) && passWord.equals(pWord)) 
         {
             System.out.println("Welcome " + userName + "!");
             System.out.println("Menu: ");
             System.out.println("\t1) Account");
             System.out.println("\t2) Payroll");
             System.out.println("\t3) Attendance Report");
             System.out.println("\t4) Service Desk");
         }
         }
}

}

Ответы [ 2 ]

0 голосов
/ 28 февраля 2020

Если я правильно понимаю, вы проверяете правильность имени пользователя и пароля пользователя !. Это может работать

public static void main(String[] args)throws IOException  {
    Scanner sc1 = new Scanner (System.in);

    System.out.println("Please enter correct credentials to log in");
    System.out.println("Username: ");
    System.out.println("Password: ");
    String userName = sc1.nextLine();
    String passWord = sc1.nextLine();

    File inFile = new File ("employee.txt");


    Scanner sc = new Scanner (inFile);
    String uName = sc.nextLine();
    String pWord = sc.nextLine();   

    sc.close();
    if(userName.equals(uName) && passWord.equals(pWord)) 
    {
        System.out.println("Welcome " + userName + "!");
        System.out.println("Menu: ");
        System.out.println("\t1) Account");
        System.out.println("\t2) Payroll");
        System.out.println("\t3) Attendance Report");
        System.out.println("\t4) Service Desk");
    }
    else {
        System.out.println("Error.!");
    }

    }

Хорошо, если в файле были пустые строки или в файле нет текста и т. Д. c., Это не будет работать должным образом.

0 голосов
/ 28 февраля 2020

Ваш Scanner sc = new Scanner(inFile); должен быть за пределами вашего, пока l oop.

Также проверьте этот ресурс: https://www.geeksforgeeks.org/different-ways-reading-text-file-java/

...