2017-06-25 2 views
0

Je tente de créer un système de connexion très basique qui vérifie le nom d'utilisateur et le mot de passe que l'utilisateur entre dans ceux stockés dans un fichier texte. J'ai regardé d'autres exemples sur ce site et d'autres endroits, mais j'ai été incapable de les faire fonctionner correctement. Je sais que les fichiers texte ne sont pas sécurisés, mais cela ne sert qu'à des fins d'apprentissage et ne sera pas mis en œuvre dans quelque chose de sérieux.vérification du nom d'utilisateur/mot de passe du fichier texte en java

Le fichier texte qu'il lit contient ces deux lignes dans le format "nom d'utilisateur, mot de passe"

student1, STUDENT1

Etudiant2, Etudiant2

L'objectif est le cas instruction pour vérifier les informations d'identification de connexion, puis ouvrez l'image suivante. Je n'ai pas encore ajouté le code pour cette partie parce que j'ai été incapable de déboguer tout ça.

Voici le code:

btnLogin.addActionListener(new ActionListener(){ 
      public void actionPerformed(ActionEvent e){ 
      File loginf = new File("users.txt"); 

       try{ 
        Scanner read = new Scanner(loginf); 
        read.useDelimiter(","); 
        boolean login = false; 
        while(read.nextLine() !=null){ 
          String user = read.next(); 
          String pass = read.next(); 
          read.next(); 
          if(username.getText().equals(user) && passwordField.getText().equals(pass)){ 
           login = true; 
           break;     
          } 
         } 
         if(login) 
          System.out.println("good"); //using for testing purposes 
         else { 
          JOptionPane.showMessageDialog(null, "Incorrect username or password"); 
          username.setText(""); 
          passwordField.setText(""); 
         } 
        read.close(); 
       } 
       catch (FileNotFoundException qwerty){ 
         JOptionPane.showMessageDialog(null, "Can't find a text file"); 
       } 
      } 
     }); 

Merci pour toute votre aide à l'avance.

+0

Et votre question est ... –

+0

Quel est exactement le problème que vous rencontrez? – Scraniel

+0

'||' signifie 'ou'. Vous voulez '&&', ce qui signifie 'and'. –

Répondre

0

Vous voudrez peut-être utiliser quelque chose comme ça.

Scanner read = new Scanner(loginf); 
    read.useDelimiter("\\n|,"); 
    boolean login = false; 
    while(read.hasNext()){ 
     String user = read.next(); 
     String pass = read.next(); 
     System.out.println(user + " " + pass); 
    } 

j'ai fait

  • supprimer votre troisième appel à read.next(), ce qui a causé votre exception
  • remplacer readLine() car cela vous fera sauter quelques lignes
  • add le nouveau caractère de ligne en tant que délimiteur puisque vos données sont également divisées par ce
0

Modifier le délimiteur en :, jeter le Scanner, et utiliser java.util.Properties.

0

Supprimez simplement la ligne read.next() après avoir pris l'utilisateur et réussi. Cela fonctionnera à coup sûr.