我如何检查登录信息是否对应于文件中的记录? (插槽)

问题描述 投票:0回答:1

所以我正在做一个学校的项目,而我在解决这个问题时遇到了麻烦。

登录后,程序通过套接字用户名和密码作为一个字符串发送到服务器,当字符串到达​​时,我使用功能split将它分成两部分

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

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

因此,存储登录信息的文件实际上就是这样,类似于CSV

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

其中“ johndoe”和“ password”当然是用户名和密码..然后我被困在这里。我如何查看从套接字发送的用户名和密码是否等于文件中的登录信息?

java file sockets
1个回答
0
投票

您必须加载该文本文件,然后搜索与您拥有的实际值匹配的任何条目:

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方法返回List;列表中的每个元素都是您的文本文件中的一个条目,已经分为String[]

然后使用该数据结构使用isValid方法搜索匹配项。

© www.soinside.com 2019 - 2024. All rights reserved.