我试图使用扫描仪从文本文件中读取对象,但我的问题是我无法访问对象的元素。这意味着我在对象中存储了用户名和密码,我想用另一个用户名和密码进行检查,用户将在运行时提供这些用户名和密码。
这就是我所做的:
//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来检查对象的用户名是否等于用户提供的用户名?
感谢您的时间。
答案 0 :(得分:1)
PrintWriter
具有print(Object)
方法
public void print(Object obj) {
write(String.valueOf(obj));
}
所以打电话
write.print(logins);
会将logins.toString()
的值写入您的文本文件。你需要控制那种格式。因此,如果您的toString()
方法是
public String toString() {
return username + "," + password;
}
假设您有字段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
}
您显然希望先验证您正在阅读的内容。