Как я могу проверить, соответствует ли информация для входа записи в файле? (Разъем) - PullRequest
0 голосов
/ 27 октября 2019

Итак, я делаю проект для школы, и у меня возникли некоторые проблемы с этой проблемой.

После входа в систему программа отправляет через сокет имя пользователя и пароль в виде одной строки на сервер, икогда приходит строка, я делю ее на две части с помощью функции split

String [] split = msgc.split(",");

        String username = split[0];
        String password = split[1];

Таким образом, файл, в котором хранится информация для входа в систему, на самом деле выглядит так, как CSV

26,johndoe,password,john,doe,123456
...

где "johndoe "и" password "- это имя пользователя и пароль, конечно .. тогда я застрял здесь. Как узнать, совпадают ли имя пользователя и пароль, отправленные из сокета, с информацией для входа в файл?

1 Ответ

0 голосов
/ 27 октября 2019

Вам нужно загрузить этот текстовый файл и затем выполнить поиск любой записи, соответствующей фактическим значениям, которые у вас есть:

public class ReadFile {

    public static void main(String args[]) {
        List<String[]> authDB = createLoginDB("PATH_TO_LOGIN_DB_TEXT_FILE");
        isValid(authDB, "USERNAME", "PASSWORD");
    }

    private static List<String[]> createLoginDB(String fileName) {
        List<String[]> result = null;
        try (Stream<String> linesStream = Files.lines(Paths.get(fileName))) {
            result = linesStream.map(line -> line.split(",")).collect(Collectors.toList());
        } catch (IOException e) {}
        return result;
    }

    private static boolean isValid(List<String[]> authDB, String username, String password) {
        return authDB.stream()
            .filter(fields -> fields[1].equals(username) && fields[2].equals(password))
            .findAny().isPresent();
    }
}

В предыдущем коде метод createLoginDB возвращает a List;где каждый элемент списка является записью в вашем текстовом файле, уже разбитой на String[].

. Затем используйте эту структуру данных для поиска совпадения, используя метод isValid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...