gpt4 book ai didi

java - 使用 Scanner 从文件中读取对象

转载 作者:行者123 更新时间:2023-12-01 14:14:43 25 4
gpt4 key购买 nike

我正在尝试使用扫描仪从文本文件中读取对象,但我的问题是我无法访问该对象的元素。这意味着我已在对象中存储了用户名和密码,并且我想使用用户在运行时提供的另一个用户名和密码来检查它。

这是我所做的:

 //writing object to the file using printwriter 
public void createLogin(String username,String password){

libraryLogin_class logins=new libraryLogin_class(username,password);

try{
PrintWriter write=new PrintWriter("login.txt");
write.print(logins);

write.close();

}catch(Exception e){}

}

//该方法尚未完全实现,目前停留在该方法

     public void checkLogin(String userName,String password)throws FileNotFoundException{

File read=new File("login.txt");

Scanner readFile=new Scanner(read);
String loginObject;


while(readFile.hasNext()){

loginObject=(readFile.nextLine());

//not implemented

}


//class which creates an object with the default username and password

public void login(){

String username="shehan";
String password="123";

createLogin_class user=new createLogin_class();

user.createLogin(username, password); //calls the creatLogin method and pass the parameters

}

所以现在我的问题是如何使用loginObject来检查对象的用户名是否等于用户提供的用户名?

感谢您的宝贵时间。

最佳答案

PrintWriter 有一个 print(Object) 方法

public void print(Object obj) {
write(String.valueOf(obj));
}

打电话

write.print(logins);

会将logins.toString()的值写入您的文本文件。您需要控制该格式。因此,如果您的 toString() 方法是

public String toString() {
return username + "," + password;
}

假设您有字段用户名密码,您应该将其读作

while(readFile.hasNext()){
libraryLogin_class login = new libraryLogin_class();

loginObject = readFile.nextLine();
String[] values = loginObject.split(",");
login.setUsername(values[0]);
login.setPassword(values[1]);
// use login
}

您显然希望首先验证您正在阅读的内容。

关于java - 使用 Scanner 从文件中读取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18215830/

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