2017-06-25 4 views
0

ユーザがテキストファイルに保存されているユーザ名とパスワードを確認する非常に基本的なログインシステムを作成しようとしています。私はこのウェブサイトや他の場所で他の例を見てきましたが、正しく動作させることができませんでした。私はテキストファイルが安全ではないことを知っていますが、これは単なる学習目的のためであり、深刻なものには実装されません。テキストは、それは読んでいるファイルjavaのテキストファイルからユーザ名/パスワードを確認しています

は形式でこれらの2行は、 "ユーザ名、パスワード"

STUDENT1、STUDENT1

student2は、目標があればです

をstudent2含まれていますステートメントを使用してログイン資格情報を確認し、次のフレームを開きます。私はそれまですべてをデバッグすることができなかったので、その部分のコードをまだ追加していません。ここで

は、コードは次のとおりです。事前にあなたの助けのすべてのための

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"); 
       } 
      } 
     }); 

感謝。

+0

あなたの質問は... –

+0

あなたが苦しんでいる問題は何ですか? – Scraniel

+0

'||'は 'or'を意味します。あなたは '&&'を意味し、 '&'を意味します。 –

答えて

0

このようなものを使用するとよいでしょう。

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); 
    } 

は、私はあなたの例外が発生しなかったものを、)(read.nextためにあなたの第三の呼び出しを削除

  • をした
  • これはあなたには、いくつかの行に
  • アドオンをスキップするだろうためのreadLine()を置き換えますあなたのデータもこのように分割されているので、改行文字は区切り文字として使用されます
0

区切り文字をに変更してください、Scannerを捨ててください。java.util.Properties.

0

ユーザーを取得してパスした後にread.next()行を削除してください。それは確かに動作します。

関連する問題