gpt4 book ai didi

java - 非常简单的Java帐户管理

转载 作者:行者123 更新时间:2023-12-02 05:13:03 25 4
gpt4 key购买 nike

我正在尝试创建一个非常简单的帐户系统,用户可以在其中创建帐户并“登录”他们创建的帐户。在用户输入详细信息后,我将帐户添加到文本文件中,如下所示;

public void createAccount(UserInfo createdUser) throws FileNotFoundException, IOException{
ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("auctionAccounts.txt"));
objectOutputStream.writeObject(createdUser);
objectOutputStream.flush();
objectOutputStream.close();
}

我现在已经转向“登录”方法,并且我正在努力寻找一种方法来循环存储在文本文件中的对象以查看帐户是否存在。我只想做一个非常简单的比较,例如;

if(enteredUsername == textfile.username){
if(enteredPassword == textfile.password){
//Do something
}
}

显然这是简单的伪代码,我正在自学 Java,目前还没有找到循环遍历文本文件的方法。我知道我可能可以使用帐户的 ArrayList,但如果用户在退出帐户后返回到我的程序时仍然存在,我会希望它仍然存在。

非常感谢

最佳答案

您必须使用 FileInputStreamObjectFileInputStream 从文件中读取您的 UserInfo 。然后,您必须迭代您读取的对象并比较用户名和密码。像这样的东西应该有效:

ObjectInputStream input = new ObjectInputStream(new FileInputStream("auctionAccounts.txt"));
UserInfo user = null;

while (user = (UserInfo) input.readObject() != null) {
if(user.username.equals(enteredPassword) && user.password.equals(enteredPassword)) {
// do something
}
}

您必须将 String 实例与 equal 进行比较。请参阅:Java String.equals versus ==

正如 @RealSkeptic 所解释的,您不会附加到文件中。每次添加 UserInfo 时都需要重新创建它。

最后但并非最不重要的一点:不要对真实用户使用如此幼稚的代码。至少您应该创建密码的加盐哈希值。

关于java - 非常简单的Java帐户管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27188574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com