0

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

这是我所做的:

 //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 来检查对象的用户名是否等于用户提供的用户名?

感谢您的时间。

4

1 回答 1

1

APrintWriterprint(Object)这样的方法

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

所以打电话

write.print(logins);

将值写入logins.toString()您的文本文件。您需要控制该格式。所以如果你的toString()方法是

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

假设您有字段usernamepassword,您应该将其阅读为

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
} 

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

于 2013-08-13T18:03:30.060 回答